Change long click delay

后端 未结 7 1601
不知归路
不知归路 2020-12-09 08:45

I am listening for a View\'s long click events via setOnLongClickListener(). Can I change the long click delay / duration?

相关标签:
7条回答
  • 2020-12-09 09:45

    This is what I did for handeling both onclick and custom long click on same button

    public static final int LONG_PRESS_DELAY_MILLIS = 3000;
    
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn_save:
                saveInfo();
                break;
    
            default:
                break;
        }
    }
    
    @Override
    public boolean onLongClick(View v) {
        switch (v.getId()) {
            case R.id.btn_save:
                initSendInfo(v, System.currentTimeMillis());
                return true;
    
            default:
                return false;
        }
    }
    
    private void initSendInfo(View v, long startTime) {
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                if (v.isPressed() && System.currentTimeMillis() - startTime >= LONG_PRESS_DELAY_MILLIS) {
                    sendInfo();
                    return;
                } else if (!v.isPressed()) {
                    return;
                }
            }
        }, LONG_PRESS_DELAY_MILLIS);
    
    }
    
    0 讨论(0)
提交回复
热议问题