2011-02-03 30 views
2

我有一个视图,我想在longPress上显示一个ContextMenu。我能够使用推荐的方法来显示这个ContextMenu:调用activity.registerForContextmenu并覆盖onCreateContextMenu(...)。Android:在longPress上显示ContextMenu以查看视图?

但是,我想在其他触摸事件上做其他事情,所以我的视图有一个TouchHandler分配给它。当这个触摸处理程序被设置时,onCreateContextMenu()永远不会被调用(大概是因为我的TouchHandler正在吃长按)。那么,无论如何,我没有调用onCreateContenxtMenu()方法来实例化并显示ContextMenu?

或者,我可以用我的“菜单”项目显示自己的自定义对话框。使用自定义对话框而不是ContextMenu有什么缺点吗?

回答

3

有一点需要尝试的是,如果您不希望事件被消耗,则从OnTouchListener返回false。

+2

击败了我28秒:-) – 2011-02-03 22:37:14

+0

我返回我的GestureDector的结果,其longPress方法的返回类型为“void” – ab11 2011-02-03 22:40:34

1

你从OnTouchListener.OnTouch返回?返回false意味着你没有消费过这个事件,这意味着其他行为也可以在它上面执行。