在手机版本上运行时,没有在 FragmentActivity 上调用 onCreateOptionsMenu

Posted

技术标签:

【中文标题】在手机版本上运行时,没有在 FragmentActivity 上调用 onCreateOptionsMenu【英文标题】:onCreateOptionsMenu not being called on FragmentActivity when run on phone version 【发布时间】:2011-10-19 16:38:22 【问题描述】:

我创建了一个同时支持手机和平板电脑版本的应用,所以我使用了 android-support-v4.jar 库。我的活动扩展了 FragmentActivity 并覆盖了 onCreateOptionsMenu(菜单菜单)。这在平板电脑上运行良好, onCreateOptionsMenu 被正确调用,但在手机上不起作用, onCreateOptionsMenu 永远不会被调用。如何解决?

注意:我在 Manifest 文件中使用 <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="12"/>

【问题讨论】:

【参考方案1】:

您应该从您的Fragment 代码中考虑:

1) 实现onCreateOptionsMenu(Menu menu, MenuInflater inflater)

2) 拨打setHasOptionsMenu

3) 并实现onOptionsItemSelected(MenuItem item)

那么你在手机和平​​板电脑上都可以。

【讨论】:

很容易忘记调用 setHasOptionsMenu。 除了 PJL 所说的之外,另一个值得一提的调用:4) setMenuVisibility(true); @Buffalo 我已经为此努力了好几个小时,谢谢,setMenuVisibility() 成功了。

以上是关于在手机版本上运行时,没有在 FragmentActivity 上调用 onCreateOptionsMenu的主要内容,如果未能解决你的问题,请参考以下文章

怎么把苹果手机上的照片用数据线传到电脑上去

无法为 android 运行 react native release build

Redmi 手机中的运行时权限

手机cpu结构,arm

在手机休眠时运行计时器

获取WIFI列表,在旧手机上运行就没有问题,在新手机上就怎么也获取不到WIFI列表,长度一直为0,还不报异常,很疑惑。