❶ android radiobutton怎麼多次點擊
Radiobutton既單選框,多個單選框中必須有一個是選中的
如果你想選擇之後又取消,那麼要使用CheckBox來實現
改變它的狀態,方式有三種:
1、XML中申明 android:check="true|false"
2、代碼動態改變 checkBox.setChecked(true|false);
3、用戶觸摸 這個由android系統自動改變
❷ android 怎樣得到連續兩次單擊button的時間間隔
1、定義一個變數,記錄上一次單擊的時間
2、設置按鈕的點擊監聽事件,獲取本次單擊的時間
3、本地單擊的時間減去上次單擊的時間就是時間間隔。
示例
java">longprelongTim=0;//定義上一次單擊的時間
button01.setOnClickListener(newView.OnClickListener(){
@Override
publicvoidonClick(Viewv){
if(prelongTim==0){//第一次單擊,初始化為本次單擊的時間
prelongTim=(newDate()).getTime();
}else{
longcurTime=(newDate()).getTime();//本地單擊的時間
System.out.println("兩次單擊間隔時間:"+(curTime-prelongTim));//計算本地和上次的時間差
prelongTim=curTime;//當前單擊事件變為上次時間
}
}
}
❸ Android 如何實現Button 重復點擊實現兩種功能,例如播放按鈕 點擊一次停止,再點擊一次播放
設定一個變數,如boolean isRunning,在點擊按鈕時判斷這個變數,如果是真說明在播放可以執行停止操作,如果是假說明當前停止,可以執行播放操作,可以用if else語句實現。
假如點擊按鈕實現功能超過兩種,可以使用int status變數保存當前狀態,在點擊按鈕後判斷當前status的值,根據不同的值執行不同的操作,可以用switch語句實現。
❹ android 如何禁止按鈕連續點擊
public abstract class OnClickEffectiveListener implements OnClickListener
{
public void onClick(View v)
{
ClickEffectUtil util = ClickEffectUtil.getInstance();
// 通過上次點擊時間跟本次點擊時間的時間差來判斷是否是有效點擊
if (util.isEffectiveClick())
{
onClickAvoidForce(v);
}
}
public abstract void onClickEffective(View v);
}
你需要做一個防暴力點擊,實現方式就是:
你寫一個abstract的,
然後在onClick(Viewv)方法中作判斷,記錄上一次的點擊時間,如果本次點擊時間未超出限定的時間間隔,則不做響應。
寫一個抽象方法供回調。
然後所有需要用到的防暴力點擊,都用MyOnClickListener,不用OnClickListener就沒事了。
❺ 快速多次點擊button後,只執行最後一次點擊,如何實現
在點擊Button後,並不直接執行,而是初始化定時器時間,啟動定時器。
當快速多次點擊後,點擊時,都會初始化定時器時間,造成不斷重新初始化,定時器並不執行操作,只有一段時間不點擊,定時器時間到了就執行相關的操作即可。
❻ 【Android開發】如何 使得 android長按按鈕=多次按下按鈕
項目遇到需要實現按鍵點擊同時,如果按住也能實現連續音量加的效果
本辦法是通過按下標志開啟線程固定間隔時間發送動作
重寫setOnTouchListener事件
btn_bolumeup.setOnTouchListener(newOnTouchListener(){
❼ Android開發 多次點擊按鈕實現不同的功能
可以聲明一個按鈕的集合,再聲明一個boolean數組,用循環設置監聽事件,例如:
private Button[] buttons = new Button[10];
private boolean[] ifPressed = new boolean[10];
private String[] audioPathes = new String[]{第一個語音文件的路徑, 第二個語音文件的路徑.......};
private int[] idOfButtons = new int[]{R.id.第一個button的id, R.id.第二個button的id, ..... };
private Class[i] classes = new Class[]{xxxxActivity.class, xxxxActivity.class, .......};
oncreat(){
for(int i = 0; i<10; i++){
buttons[i] = (Button) findViewById(idOfButtons[i]);
buttons[i].setOnClickListener(new OnClickListener(){
//因為boolean數組初值為false,所以不用初始化為false,直接調用
if(!ifPressed[i]){
//單獨寫個方法,傳入路徑播放語音,用Media或者SoundPool都可以
//如果是播放同一個語音的話就不用加路徑參數了,audioPathes也不用了
playAudio(audioPathes[i]);
ifPressed[i] = true;
}
Intent intent = new Intent(MainActivity.this, classes[i]);
startActivity(intent);
finish();//要不要結束當前Activity根據你的app要求吧
});
}
}
大概思路就是這樣了,直接在網頁上打的,排版不是太好,變數名可能也有打錯不一樣的,還是先理解了自己寫吧,這樣才有提高。
剛剛重新看了下,buttons數組可以不要,在循環里直接new一個Button就可以了,把
buttons[i] = (Button) findViewById(idOfButtons[i]);
buttons[i].setOnClickListener(new OnClickListener(){});
替換為:
Button button = (Button) findViewById(idOfButtons[i]);
button.setOnClickListener(new OnClickListener(){
就好了
❽ Android 如何判斷多次點擊
不知道題主的意思是不是防止按鈕多次點擊,我這里給出一個防止按鈕多次點擊的方案:
private long lastClickTime = 0L;
private static final int FAST_CLICK_DELAY_TIME = 1000; // 快速點擊間隔
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
...
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (System.currentTimeMillis() - lastClickTime < FAST_CLICK_DELAY_TIME) {
return;
}
lastClickTime = System.currentTimeMillis();
// TODO: 點擊事件
}
});
}
❾ android開發中怎麼控制項按鈕不讓用戶頻繁的點擊
可以通過時間間隔控制不讓用戶頻繁點擊。
1、定義一個變數,記錄上一次單擊的時間
longt1=0;//記錄上一次單擊的時間,初始值為0
2、在按鈕的點擊時獲取本次點擊的時間,然後根據間隔時間設置可以點擊的頻率。
Buttonbtn=(Button)findViewById(R.id.xxxx);//獲取該按鈕
btn.setOnClickListener(newView.OnClickListener(){//定義按鈕的點擊事件
@Override
publicvoidonClick(Viewv){
if(t1==0){//第一次單擊,初始化為本次單擊的時間
t1=(newDate()).getTime();
}else{
longcurTime=(newDate()).getTime();//本地單擊的時間
System.out.println("兩次單擊間隔時間:"+(curTime-t1));//計算本地和上次的時間差
if(curTime-t1>5*1000){
//間隔5秒允許點擊,可以根據需要修改間隔時間
t1=curTime;//當前單擊事件變為上次時間
}
}
}
}
❿ Android 點擊Button循環延時保存 再次點擊Button停止保存
第二次調用auto方法後僅僅是把flag設置為true,循環保存仍然在進行,可以在run方法中加一個判斷,當flag為false繼續循環,否則退出循環
@Override
public void run() {
if(!flag) {
save();
handler.postDelayed(this, 1000);
}
}