快速按下时按钮事件发生两次

时间:2017-07-18 16:26:53

标签: android button

点击按钮调用事件或者按下非常快的时间执行相应的方法多少次?在android中处理这个问题的最佳方法是什么?

3 个答案:

答案 0 :(得分:0)

on_tap是一个常见的事件,我从来没有遇到过这个问题。 你可以轻拍"尽可能快,每次都应该提出这个事件。

答案 1 :(得分: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);
} 

}

答案 2 :(得分:0)

正如您所提到的,在onClick()处理第一次点击事件之前,可以将多个按钮点击事件排入队列,因此只需调用setClickable(false)setEnabled(false)赢取'总是有效。

但是,即使您可以将多个事件排队,但它们将始终在同一个线程上处理,这意味着始终会有第一个点击事件。

存储您自己的boolean,并且只在第一次执行onClick()次操作。

private boolean firstEvent = true;

public void onClick(View v) {
    if (firstEvent) {
        firstEvent = false;
        // your code here
    }
}