小编Lar*_* K.的帖子

如何在多片段活动中处理onContextItemSelected?

我目前正在尝试调整我的应用程序以使用"适用于Android v4的兼容性库",以便为Android 1.6用户提供使用片段的好处.

上下文菜单的实现似乎很棘手:

  • 该应用程序的主要活动是扩展FragmentActivity 类.
  • 这些片段都基于一个扩展Fragment类的类.
  • fragment类在其onCreateView()方法中调用 registerForContextMenu()并覆盖 onCreateContextMenu()onContextItemSelected()方法.

对于onCreateContextMenu(),这非常有效.上下文菜单从资源文件中膨胀,并根据所选项目进行略微修改(基于listView ...即使片段不是ListFragment).

选择上下文菜单项时会发生此问题. 从第一个添加的片段开始,为所有当前存在的片段调用onContextItemSelected().

在我的例子中,片段用于显示文件夹结构的内容.当打开子文件夹片段的上下文菜单并选择菜单项时,首先在上层调用onContextItemSelected()(取决于此时允许/可见的片段数).

现在,我使用活动级别上的字段的变通方法,该字段包含调用其onCreateContextMenu()的最后一个片段的标记.这样,当存储的标记与getTag()不同时,我可以在onContextItemSelected()的开头调用"return super.onContextItemSelected(item)" .但这种方法对我来说有点脏.

为什么在所有片段上调用onContextItemSelected()?而不只是一个调用onCreateContextMenu()的人

处理这个问题最优雅的方法是什么?

android contextmenu android-fragments android-support-library

68
推荐指数
5
解决办法
2万
查看次数

如何配置Android模拟器以显示新的Galaxy Nexus等屏幕按钮?

我想将我的应用程序转换/改编为Android 4.0.为此,我计划在支持它的设备上使用ActionBar.所有Android版本> = 3.0都这样做.此外,没有硬件菜单按钮的设备似乎会自动在操作栏上显示"菜单"按钮.

当我使用API​​级别13在模拟器上测试我的应用程序时,这确实可以正常工作......但不知何故,我无法在API级别14(Android 4.0)上模拟手机时设置模拟器的行为方式相同).当我尝试将" 硬件后退/主页键 "设置为false时,根本没有按钮(不在屏幕上而不是模拟器提供的键盘).

我在"Galaxy Nexus"的一些屏幕截图和视频中看到,它在ActionBar上显示了一个"菜单"按钮......就像Honeycomb平板电脑那样,但是我不知道怎么做也没有成功.模拟器使得理解我的UI如何在Andoid 4.0手机上工作变得有点复杂.

编辑: 这是一个图像,显示我希望在模拟器中看到的屏幕后面和主页按钮:

android android-emulator

35
推荐指数
2
解决办法
3万
查看次数