android - 识别在上下文菜单中选择的 View (Android)

标签 android

在 Android 中,onContextItemSelected 有一个单独的 MenuItem 参数,因此不清楚如何识别所选 View 。 MenuItem.getMenuInfo提供对 Contextmenu.ContextMenuInfo 的访问,但是虽然两个已知的子类都提供了对目标 View 的访问,但接口(interface)上似乎没有访问器。

一种替代方法是将 onCreateContextMenu 中提供的 View 保存在一个私有(private)类变量中,该变量依赖于 onCreateContextMenu 不会在 Activity 中再次调用在 onContextItemSelected 之前。另一种方法是使用 View 的 id 作为 ContextMenu.additemId 参数。 .如果我们这样做,那么我们将需要使用其(可能是国际化的)标题来识别从上下文菜单中选择的选项。

识别在 onContextSelected 中选择的 View 的最佳方法是什么?

最佳答案

Android 中的选项菜单或上下文菜单都没有“识别所选 View ”这样的概念。因此,很难回答你的问题。所以,我会做一些猜测。

如果“识别所选 View ”是指选择了哪个菜单选项,即传递给 onOptionsItemSelected( )onContextItemSelected()

如果“识别所选 View ”是指 ListView 中的哪一行是长按以调出上下文菜单的行,则转换 getMenuInfo() (在 MenuItem 上调用)到 AdapterView.AdapterContextMenuInfo,然后根据需要使用 idposition 值基于您的适配器。 See here for a sample project使用这种技术。

如果“识别所选 View ”意味着您在一个 Activity 中有多个非 ListView 上下文菜单,我不会使用该 UI 技术。

关于android - 识别在上下文菜单中选择的 View (Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2926293/

相关文章:

android - datepicker选择星期几android

android - 使同一屏幕上的 2 个 Android ListViews 具有相同的高度

android - Android OpenCV教程5相机控制崩溃

java - 升级 Android Studio NDK : CMAKE_C_COMPILER and CMAKE_CXX_COMPILER not set 后出错

java - 在 android 4.4 中注意到 float 操作按钮周围有奇怪的圆圈吗?

android - Android JNI 中的计时器

java - android中如何使用特殊字符进行搜索

android - 如何像 Iphone 一样显示 Twitter 发布对话框

Android 相当于 iOS 中的 NSURLProtocol

android - com.android.support 版本与完全相同的版本不匹配