【发布时间】:2011-09-04 23:06:54
【问题描述】:
在我们的应用程序中,我们有一个自定义视图(扩展ImageView),我们在其中处理触摸事件以记录数据。我想在这个视图中添加上下文菜单功能,并遵循官方 Android 文档中的指南。
onTouchEvent 代码本身可以正常工作。上下文菜单代码也可以正常工作。但是,如果我同时添加它们,上下文菜单代码将停止工作。我发现添加了两段代码后,onCreateContextMenu 永远不会被调用,因此上下文菜单永远不会显示。
根据我对Android文档的解释,从onTouchEvent返回false表示该事件没有被消费,所以应该使用它做进一步处理。出于某种原因,这里没有发生。如果有人能告诉我我错过了什么,我将不胜感激。顺便说一句,目标是运行 2.3.4 ROM 的 Nexus One。
这是自定义视图中onTouchEvent 的代码:
public boolean onTouchEvent(MotionEvent event)
{
switch (event.getAction())
{
case MotionEvent.ACTION_DOWN:
// Add event coordinates to an arraylist
break;
}
return false;
}
提前感谢您的帮助。
【问题讨论】:
-
能不能也贴一下longclick代码?
-
您的意思是我根据 Snicolas 的评论尝试的代码?很简单:
@Override public boolean onLongClick(View v) { openContextMenu(myView); return true; }
标签: android contextmenu touch-event long-click