首页 > 代码库 > Android 防止button多次点击总结
Android 防止button多次点击总结
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多次点击总结
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。