码迷,mamicode.com
首页 > 移动开发 > 详细

Android 防止button多次点击总结

时间:2014-09-05 16:10:31      阅读:175      评论:0      收藏:0      [点我收藏+]

标签: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多次点击总结

标签:android   blog   使用   2014   sp   log   html   on   c   

原文地址:http://blog.csdn.net/honjane/article/details/39081619

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!