考虑一个活动,其中名为“扫描”的按钮在蓝牙设备连接后立即被禁用,以防止进一步扫描。
mScan.setEnabled(false);
但是一旦连接,我需要相同的按钮mScan来显示一些对话框,当长按时,该对话框具有其他功能。
问题是因为我禁用了mScan按钮,我无法在LongClick函数上执行。
我如何才能实现同样目标?
寻求帮助。
答案 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
。