android按钮防止重复按下

来源:互联网 发布:apache io模型 编辑:程序博客网 时间:2024/05/17 00:57

一、

在点击时间的onClick方法中设置控件为不可用状态,在onResume()方法中设置为可见状态,代码示例:

        btn1.setOnClickListener(new View.OnClickListener() {                @Override        public void onClick(View v) {        Intent intent = new Intent(HandwritingActivity.this,Test2Activity.class);        startActivity(intent);        v.setEnabled(false);//将当前触发控件给禁用        }        });

@Overrideprotected void onResume() {// TODO Auto-generated method stubsuper.onResume();ivShare.setEnabled(true);}

二、

1. 需要定义一个全局变量 lastClickTime, 用来记录最后点击的时间.
2. 每次点击前需要进行判断, 用lastClickTime 和当前时间想比较,并且更新最后点击时间,若小于临界值,则算无效点击,不触发事件。

代码示例:

public class CommonUtils { private static long lastClickTime; public static boolean isFastDoubleClick() { long time = System.currentTimeMillis(); long timeD = time - lastClickTime; if ( 0 < timeD && timeD < 800) { return true; } lastClickTime = time; return false; } } 

public void onClick(View v) { if (Utils.isFastDoubleClick()) { return; } else { //弹出Toast或者Dialog } }

三、

 public static void disableViewForSeconds(final View v) {        v.setClickable(false);        new Handler().postDelayed(new Runnable() {            @Override            public void run() {                v.setClickable(true);            }        }, 2000);    }