美文网首页
Android双击事件实现

Android双击事件实现

作者: 木白掘金 | 来源:发表于2017-03-11 18:38 被阅读0次

    双击退出应用

    long firstPressTime = 0;
    /**
     * 双击返回键退出应用
     */
    public void onBackPressed(){
        long now = System.currentTimeMillis();
        if ((now - firstPressTime) > 2000){
            Snackbar snackbar = Snackbar.make(getCurrentFocus(),"再按一次退出",Toast.LENGTH_SHORT);
                    setSnackbarColor(snackbar,Color.BLUE,Color.WHITE);
                    snackbar.show();
            firstPressTime = now;
        }else {
            finish();
            System.exit(0);
        }
    }
    

    双击响应事件

    利用Handler控制点击事件

    long firstPressTime = 0;
    long mNow = 0;
    final Handler handler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                super.handleMessage(msg);
                switch (msg.what) {
                    case 1:
                        Snackbar.make(getCurrentFocus(),"双击事件",Snackbar.LENGTH_SHORT).show();
                        break;
                    case 2:
                        Snackbar.make(getCurrentFocus(),"单击事件",Snackbar.LENGTH_SHORT).show();
                        break;
                }
            }
        };
    
    btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                firstPressTime=mNow;
                mNow= System.currentTimeMillis();
                if (mNow - firstPressTime < 300){//双击事件
                   //先移除消息栈里面的单击消息
                    handler.removeMessages(2);
                    handler.sendEmptyMessage(1);
                    mNow= 0;
                }else {//单击事件
                    //发送0.31s的延时message,便于区分单双击事件
                    handler.sendEmptyMessageDelayed(2,310);
                }
            }
        });

    相关文章

      网友评论

          本文标题:Android双击事件实现

          本文链接:https://www.haomeiwen.com/subject/lbczgttx.html