防止多个控件重复点击

来源:互联网 发布:centos web服务器配置 编辑:程序博客网 时间:2024/06/10 22:19

1.网上也有很多防止重复点击的,但是大都是利用点击的时间差,并不支持多个控件同时操作;

2.本方法是通过开启子线程来控制按钮是否可以点击,在实际的开发中并不是每个按钮都要加重复点击,

只有有些情景时才进行使用;

3.工具类如下:

/*** @Description: 防止重复点击* @author  作者 :likun* @date 创建时间:2016/7/20 14:00*/public class NoDoubleClickUtils {    //多长时间内不可点击   private static final int DELAY=3000;    public static void noDoubleClick(final Activity context, final int v){        context.findViewById(v).setClickable(false);        new Thread() {            @Override            public void run() {                SystemClock.sleep(DELAY);                context.runOnUiThread(new Runnable() {                    @Override                    public void run() {                        context.findViewById(v).setClickable(true);                    }                });            }        }.start();    }}
4.代码中使用:

public class MainActivity extends Activity implements View.OnClickListener {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        findViewById(R.id.rtn_double_click1).setOnClickListener(this);        findViewById(R.id.rtn_double_click2).setOnClickListener(this);    }    @Override    public void onClick(View v) {        switch (v.getId()) {            case R.id.rtn_double_click1:                Toast.makeText(this, "点击1", Toast.LENGTH_SHORT).show();                NoDoubleClickUtils.noDoubleClick(this,R.id.rtn_double_click1);                break;            case R.id.rtn_double_click2:                Toast.makeText(this, "点击2", Toast.LENGTH_SHORT).show();                NoDoubleClickUtils.noDoubleClick(this,R.id.rtn_double_click2);                break;        }    }}


0 0
原创粉丝点击