执行正常单击和长按按钮

Dee*_*rma 25 android button

我有一个名为CheckIn的按钮.看看我的代码.

    checkIn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

       Toast.makeText(HomeSafeActivity.this, "Normal Press", Toast.LENGTH_LONG).show();

    });


    checkIn.setOnLongClickListener(new View.OnLongClickListener() {

        @Override
        public boolean onLongClick(View v) {

            Toast.makeText(HomeSafeActivity.this, "Long press", Toast.LENGTH_LONG).show();



            return false;
        }
    });
Run Code Online (Sandbox Code Playgroud)

现在,当我正常按下按钮时,信息显示为正常按下.当我长按按钮时,信息显示为长按和正常按两者.我想要的是,当我长按按钮时,长按事件不应该触发正常的按键事件.我怎么能实现这个?

Dee*_*rma 41

我得到了我的问题的解决方案.返回真实而非虚假.见下文: -

    checkIn.setOnLongClickListener(new View.OnLongClickListener() {

        @Override
        public boolean onLongClick(View v) {

            Toast.makeText(HomeSafeActivity.this, "Long preess", Toast.LENGTH_LONG).show();

            return true;
        }
    });
Run Code Online (Sandbox Code Playgroud)


Sun*_*mar 12

onLongClick() - 这将返回一个布尔值,表示您是否已经消耗了该事件,并且不应该进一步携带它.也就是说,return true表明你已经处理了这个事件,它应该在这里停止; return false如果您没有处理它和/或该事件应该继续任何其他事件on-click listeners.


小智 5

如果长按,您应该返回true

例:

  btnBookingMasterCab.setOnLongClickListener(new OnLongClickListener() {
        @Override
        public boolean onLongClick(View v) {
            if(preCheckoutInfo!=null){
                rlChooseCard.setVisibility(View.VISIBLE);
            }
            return true;
        }
    });
Run Code Online (Sandbox Code Playgroud)