標籤:android blog 使用 2014 sp log html on c
long lastClick ; public void onClick(View v) { //大於一秒方個通過 if (System.currentTimeMillis() - lastClick <= 1000) { showToast("點那麼快乾什麼!!!"); return; } lastClick = System.currentTimeMillis(); }
一種常見的寫法,記錄前後兩次點擊事件的時間,然後判斷一個時間差是否在給定的LimitTime內,如果是則不能點擊,
否則,可點擊.
這種方式有缺點,多個button,快速切換點擊,控制效果不是很好,所以我試著用Android的 handler來控制button點擊事件。
//new 一個handler,用於訊息處理 Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); if(msg.what == GOTO_DIALOG){ //調用button點擊事件處理方法goToDialog goToDialog((Integer)msg.obj); } } }; @Override public void onClick(View v) { //發送handler訊息之前,清空該訊息 handler.removeMessages(GOTO_DIALOG); //綁定一個msg,內容為接下來需要的button的ID, Message msg = Message.obtain(); msg.what = GOTO_DIALOG; msg.obj = v.getId(); //發送訊息間隔1秒 handler.sendMessageDelayed(msg, 1000); } private void goToDialog(int id){ //多個botton switch (id){ case R.id.btn_back: ...... break; case R.id.btn_sumbit: ...... break; }使用上面handler處理後,就不再擔心多個button之間切換,亂點了
注意:記得用完handler後銷毀
Android 防止button多次點擊總結