點擊按鈕調用事件或執行相應的方法的次數很多時按下非常快?在Android中處理此問題的最佳方法是什麼?快速按下按鈕事件發生兩次
-1
A
回答
0
on_tap是一個常見的事件,我從來沒有使用過這個問題。 您可以儘可能快地「點擊」,並且每次都應該提高事件。
0
onClick(View v) {
MultiClickPreventer.preventMultiClick(v);
//your op here
}
...
public class MultiClickPreventer {
private static final long DELAY_IN_MS = 500;
public static void preventMultiClick(final View view) {
if (!view.isClickable()) {
return;
}
view.setClickable(false);
view.postDelayed(new Runnable() {
@Override
public void run() {
view.setClickable(true);
}
}, DELAY_IN_MS);
}
}
+0
使用這種方法先生,但沒有爲我工作的事件獲取存儲在隊列中之前clickable被設置爲false – himanshu
0
正如你所提到的,可能之前,首先單擊事件中onClick()
的處理要排隊的多個按鈕的點擊事件,所以只需撥打setClickable(false)
或setEnabled(false)
不會總是工作。
但是,即使您可以排隊多個事件,它們也會始終在同一個線程上處理,這意味着始終會有一個第一個點擊事件。
存儲您自己的boolean
,並且僅在第一次執行您的onClick()
操作。
private boolean firstEvent = true;
public void onClick(View v) {
if (firstEvent) {
firstEvent = false;
// your code here
}
}
相關問題
- 1. 按鈕GPIO.FALLING事件觸發兩次
- 2. 按鈕沒有多次發生事件
- 3. 當用戶多次真正快速按下按鈕時,如何避免多次觸發onClick事件?
- 4. 快速按下單按和長按事件的UIButton
- 5. 如何快速按下按鈕在Xcode上生成聲音?
- 6. 存儲按鈕按快速
- 7. 快速AVAudioplayer上按鈕按
- 8. wxpython按鈕按下事件
- 9. SlimDx按下按鈕事件
- 10. 事件「按下按鈕時」
- 11. 按鈕按下事件
- 12. 按鈕點擊點擊事件兩次
- 13. 繼續按下按鈕兩次
- 14. 禁用按下兩次的android按鈕
- 15. WinJS - 防止兩個快速按鈕
- 16. Android:將setOnClickListener設置爲按鈕。當按下太快時觸發兩次
- 17. UIButton:快速按下
- 18. WPF按鈕被按下/未按下時觸發事件
- 19. JavaFX按鈕事件只觸發一次
- 20. 快速點擊按鈕時避免導航兩次
- 21. 對話框快速點擊按鈕打開兩次
- 22. 按下單選按鈕兩次,計算兩次
- 23. ios找出事件發生的按鈕
- 24. 按鈕處理兩次(按上升/下降沿)按鈕中斷
- 25. 兩次電源按鈕按下發送短信
- 26. 如果某個鍵被快速按下兩次,檢測到
- 27. 兩次按下後顯示按下按鈕的結果
- 28. 按鈕無法按兩次
- 29. 在winform按鈕需要點擊兩次擊發事件
- 30. .net 4.0網頁按鈕點擊事件觸發兩次
檢查了這一點... HTTPS://stackoverflow.com/questions/16534369/avoid-button-multiple-rapid-clicks –
這個問題是很難理解的。解釋你做了什麼,解釋發生了什麼,然後解釋你想要發生什麼。使用更多的話。請一位朋友幫你用清晰的英文寫出問題可能會有幫助。 – Buster
其實它的一種形式和當用戶按下提交按鈕條目得到保存我的應用程序用戶抱怨從應用程序衝出相同的條目,我已經用一種簡單的方法通過採取一個變量的時間間隔,如果時間差拳是少於2秒我只是返回,但我仍然面臨問題 – himanshu