在 Android 中,onContextItemSelected
有一个单独的 MenuItem
参数,因此不清楚如何识别所选 View 。 MenuItem.getMenuInfo提供对 Contextmenu.ContextMenuInfo 的访问,但是虽然两个已知的子类都提供了对目标 View 的访问,但接口(interface)上似乎没有访问器。
一种替代方法是将 onCreateContextMenu
中提供的 View
保存在一个私有(private)类变量中,该变量依赖于 onCreateContextMenu
不会在 Activity 中再次调用在 onContextItemSelected
之前。另一种方法是使用 View
的 id 作为 ContextMenu.add 的 itemId
参数。 .如果我们这样做,那么我们将需要使用其(可能是国际化的)标题来识别从上下文菜单中选择的选项。
识别在 onContextSelected
中选择的 View
的最佳方法是什么?
最佳答案
Android 中的选项菜单或上下文菜单都没有“识别所选 View ”这样的概念。因此,很难回答你的问题。所以,我会做一些猜测。
如果“识别所选 View ”是指选择了哪个菜单选项,即传递给 onOptionsItemSelected( )
或 onContextItemSelected()
。
如果“识别所选 View ”是指 ListView
中的哪一行是长按以调出上下文菜单的行,则转换 getMenuInfo()
(在 MenuItem
上调用)到 AdapterView.AdapterContextMenuInfo
,然后根据需要使用 id
或 position
值基于您的适配器。 See here for a sample project使用这种技术。
如果“识别所选 View ”意味着您在一个 Activity 中有多个非 ListView
上下文菜单,我不会使用该 UI 技术。
关于android - 识别在上下文菜单中选择的 View (Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2926293/