long lastClick ;
    public void onClick(View v) {  
        //大于一秒方个通过  
        if (System.currentTimeMillis() - lastClick <= 1000)  
        {  
            showToast("点那么快干什么!!!");  
            return;  
        }  
        lastClick = System.currentTimeMillis();  
    }  否则,可点击.
这种方式有缺点,多个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后销毁 
原文:http://blog.csdn.net/honjane/article/details/39081619