恐怕大家都會遇到這樣的問題,一個點擊事件多次觸發,導致,同樣的內容提交了多次,或者說彈出多個頁面...
下面是簡單的方案,大家可以試一試
原理很簡單,當我們第一次點擊的時候,把按鈕變成不可點擊狀態。
然后設置 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); } } }