Android_防止快速點(diǎn)擊

重寫OnClickListener

public abstract class DebouncingOnClickListener implements View.OnClickListener {
private static boolean enabled = true;

private static final Runnable ENABLE_AGAIN = new Runnable() {
    @Override
    public void run() {
        enabled = true;
    }
};

@Override
public final void onClick(View v) {
    if (enabled) {
        enabled = false;
        v.post(ENABLE_AGAIN);
        doClick(v);
    }
}

public abstract void doClick(View v);
}

模擬點(diǎn)擊

txt = (TextView) findViewById(R.id.txt);
    
    /*txt.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View view) {
            startActivity(new Intent(MainActivity.this, SecondActivity.class));
        }
    });*/
    txt.setOnClickListener(new DebouncingOnClickListener() {
        
        @Override
        public void doClick(View v) {
            // TODO Auto-generated method stub
            startActivity(new Intent(MainActivity.this, SecondActivity.class));
        }
    });
    for (int i = 0; i < 3; i++) {
        txt.performClick();
    }

使用系統(tǒng)自帶的OnClickListener會打開三次SecondActivity,使用DebouncingOnClickListener 則只會打開一次。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,881評論 25 709
  • 作為Android的四大組件之一,活動最先走進(jìn)我們的視野,其重要性不言而喻,今天就抽出時間來專門對Android活...
    loser先生閱讀 1,370評論 0 0
  • Day1: 在代碼中通過R.string.hello_world可以獲得該字符串的引用; 在XML中通過@stri...
    冰凝雪國閱讀 1,620評論 0 5
  • 44/100 100天寫作計(jì)劃第44篇 之前寫的隨筆,重新整理過,適合今天淡淡憂傷的心情。 西塘的殤,前無人等待...
    頁彥夕閱讀 567評論 0 4
  • 糾結(jié)了一路,自從坐上車的那一刻,到底要不要給你打電話?各種的思想斗爭激烈地沖擊著本就迷糊的大腦。我想,你還在忙著...
    一路有我閱讀 246評論 0 1

友情鏈接更多精彩內(nèi)容