點擊按鈕調用事件或執行相應的方法的次數很多時按下非常快?在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. 如何快速按下按鈕在Xcode上生成聲音?
- 3. 快速AVAudioplayer上按鈕按
- 4. 存儲按鈕按快速
- 5. wxpython按鈕按下事件
- 6. 按鈕按下事件
- 7. SlimDx按下按鈕事件
- 8. 按鈕點擊點擊事件兩次
- 9. 禁用按下兩次的android按鈕
- 10. WinJS - 防止兩個快速按鈕
- 11. WPF按鈕被按下/未按下時觸發事件
- 12. UIButton:快速按下
- 13. JavaFX按鈕事件只觸發一次
- 14. 快速點擊按鈕時避免導航兩次
- 15. ios找出事件發生的按鈕
- 16. 兩次按下後顯示按下按鈕的結果
- 17. 按鈕無法按兩次
- 18. 單擊事件兩次觸發按鈕鏈接
- 19. 單選按鈕檢查更改的事件觸發兩次
- 20. 在winform按鈕需要點擊兩次擊發事件
- 21. asp.net按鈕點擊事件只發生一次
- 22. 快速按鈕的輪廓
- 23. PayPal快速結賬按鈕
- 24. 快速按鈕顯示
- 25. 快速按鈕變灰
- 26. Devexpress按鈕在第一次回發後發生禁用按鈕
- 27. 當按下按鈕時按鈕顏色發生變化
- 28. 由於快速返回按鈕按下而導致崩潰
- 29. 如何保存用戶快速按下按鈕的日期?
- 30. 當按下按鈕時快速更改背景
檢查了這一點... HTTPS://stackoverflow.com/questions/16534369/avoid-button-multiple-rapid-clicks –
這個問題是很難理解的。解釋你做了什麼,解釋發生了什麼,然後解釋你想要發生什麼。使用更多的話。請一位朋友幫你用清晰的英文寫出問題可能會有幫助。 – Buster
其實它的一種形式和當用戶按下提交按鈕條目得到保存我的應用程序用戶抱怨從應用程序衝出相同的條目,我已經用一種簡單的方法通過採取一個變量的時間間隔,如果時間差拳是少於2秒我只是返回,但我仍然面臨問題 – himanshu