相关疑难解决方法(0)

带有onClick和onLongClick的Android onTouch

我有一个自定义视图,就像一个按钮.我想在用户按下它时更改背景,当用户将手指移到外面或释放它时将背景恢复为原始状态,我还想处理onClick/onLongClick事件.问题是onTouch要求我返回true,ACTION_DOWN否则它不会向我发送ACTION_UP事件.但如果我回归真实,那么onClick听众将无法工作.

我以为我通过在onTouch中返回false并注册onClick来解决它 - 它以某种方式工作,但是有点反对文档.我刚收到用户的消息,告诉我他无法长按此按钮,所以我想知道这里有什么问题.

当前代码的一部分:

public boolean onTouch(View v, MotionEvent evt)
{
  switch (evt.getAction())
  {
    case MotionEvent.ACTION_DOWN:
    {
      setSelection(true); // it just change the background
      break;
    }

    case MotionEvent.ACTION_CANCEL:
    case MotionEvent.ACTION_UP:
    case MotionEvent.ACTION_OUTSIDE:
    {
      setSelection(false); // it just change the background
      break;
    }
  }

  return false;
}

public void onClick(View v)
{
  // some other code here
}

public boolean onLongClick(View view)
  {
    // just showing a Toast here
    return false;
  }


// somewhere …
Run Code Online (Sandbox Code Playgroud)

android click touch

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

android ×1

click ×1

touch ×1