如何同时收听onTouch和onClick事件?

时间:2014-09-09 13:58:14

标签: android

我有一个按钮和一个显示数字的文字标签。我想单击按钮将标签的编号添加到按钮。我还希望按住按钮一段时间,然后开始连续添加号码。如果longclick事件添加了数字,则click事件将不执行任何操作。我该如何实现呢?

1 个答案:

答案 0 :(得分:0)

使用这样的自定义TouchListener(这是非常基本的,在浏览器中编写,而不是在IDE中编写):

boolean touching = false;
long startTime = 0;

@Override
public boolean onTouchEvent(MotionEvent e) {

switch (e.getAction()) {
    case MotionEvent.ACTION_DOWN:
    if(touching){
        onLongClick(System.currentTimeMillis() - startTime)
    }else{
        touching = true;
        startTime = System.currentTimeMillis;
        onClick();
    }
    break;

    case MotionEvent.ACTION_UP:
    case MotionEvent.ACTION_CANCEL:
       touching = false;
    break;
   }
return true;
}

onLongClick(long elapsedTime){
//Do stuff
}