如何在Android中禁用onclick的按钮上执行长按事件?

时间:2015-10-14 07:58:12

标签: android

考虑一个活动,其中名为“扫描”的按钮在蓝牙设备连接后立即被禁用,以防止进一步扫描。

mScan.setEnabled(false); 

但是一旦连接,我需要相同的按钮mScan来显示一些对话框,当长按时,该对话框具有其他功能。

问题是因为我禁用了mScan按钮,我无法在LongClick函数上执行。

我如何才能实现同样目标?

寻求帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用自定义OnTouchListener

long lastDown;
long lastDuration;

 public class YourOnTouchListener implements View.OnTouchListener
{
    public YourOnTouchListener(some parameters) {
    }


    @Override
    public boolean onTouch(View v, MotionEvent event) {

        if (event.getAction() == MotionEvent.ACTION_DOWN) {

            return true;


        } else if (event.getAction() == MotionEvent.ACTION_UP) {

            lastDuration = System.currentTimeMillis() - lastDown;


            if (lastDuration > the duration you want) {
            //do what you want here
                return true;
            }
        return false;

    }


}

然后,您可以根据持续时间控制您想要执行的操作,并且它也适用于OnClickListener