如果onCreateContextMenu()失败,请取消onListItemClick()

时间:2011-01-08 17:05:18

标签: android listactivity

我有一个基本的ListActivity,它通过onCreateContextMenu()和onContextItemSelected()支持上下文菜单。如果这些方法中的任何一个失败并且未生成上下文菜单,则当前的默认功能似乎是触发onListItemClick()。对我而言,如果用户故意按住手指进入上下文菜单,然后只打开项目,则会非常混乱,如果发生这种情况,可能会导致他们在您的应用中放弃此手势。

我想要做的是在使用有用的消息触发Toast失败时,然后取消onListItemClick以便列表项不会打开。我有Toast工作,但试图弄清楚是否有可能取消onCreateContextMenu()或onContextItemSelected()内部的点击动作,其中将发生错误。

谢谢!

1 个答案:

答案 0 :(得分:0)

所以我有一个解决方案,我正在使用它似乎工作正常。我创建了一个布尔字段mIgnoreClick,并在onCreate()中将其设置为false。然后在onCreateContextMenu()中,如果生成上下文菜单时发生错误,我将mIgnoreClick设置为true并向用户发送Toast,提醒他们此功能当前不可用。最后,在onListItemClick()中,我检查mIgnoreClick的状态;如果为false,则显示该项,如果为true,则不执行任何操作,并将mIgnoreClick设置回false,以便用户可以单击listitems并根据需要打开它们。

因此,如果菜单生成不正确,我什么都不做;他们从不打算打开这个项目,所以这种行为符合我的需要。