Android 防止多次點擊事件


恐怕大家都會遇到這樣的問題,一個點擊事件多次觸發,導致,同樣的內容提交了多次,或者說彈出多個頁面...

 

下面是簡單的方案,大家可以試一試

原理很簡單,當我們第一次點擊的時候,把按鈕變成不可點擊狀態。

然后設置 5s 的定時器來恢復點擊事件。

方法一:

    public static void disabledView(final View v) {
        v.setClickable(false);
    // 延遲5秒,恢復點擊事件
new Handler().postDelayed(new Runnable() { @Override public void run() { v.setClickable(true); } }, 5000); }

 

方法二:

public class BaseActivity extends Activity {    
    
    protected boolean isDestroy;
    //防止重復點擊設置的標志,涉及到點擊打開其他Activity時,將該標志設置為false,在onResume事件中設置為true
    private boolean clickable=true;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        isDestroy=false;
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        isDestroy=true;
        
    }

    @Override
    protected void onResume() {
        super.onResume();
        //每次返回界面時,將點擊標志設置為可點擊
        clickable=true;
    }

    /**
     * 當前是否可以點擊
     * @return
     */
    protected boolean isClickable(){
        return  clickable;
    }

    /**
     * 鎖定點擊
     */
    protected void lockClick(){
        clickable=false;
    }



    @Override
    public void startActivityForResult(Intent intent, int requestCode, Bundle options) {
        if(isClickable()) {
            lockClick();
            super.startActivityForResult(intent, requestCode,options);
        }
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM