android - fragment 未接收菜单回调

标签 android android-fragments fragment

我有一个 fragment 类,它扩展Fragment 并调用setHasOptionsMenu 来参与菜单。该类还实现了 onCreateOptionsMenuonPrepareOptionsMenuonOptionsItemSelected

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setHasOptionsMenu(true);
        ....
}

我在我的 Activity 中使用 FragmentTransaction 动态加载这个 fragment (扩展 FragmentActivity)。

但是,没有一个菜单回调(onCreateOptionsMenuonPrepareOptionsMenuonOptionsItemSelected)被调用(我已经在这些回调中调试了一些断点)方法)并且菜单不显示。

我错过了什么吗?我需要在我的 Activity 中添加一些东西吗?

我正在使用 Android 兼容性库,使用 L11 SDK 进行编译并在 Xoom 中进行测试。

编辑:我发现了问题。我的 AndroidManifest 的目标是 L11,这似乎隐藏了菜单按钮并防止调用回调。但是,如果我从 list 中删除它,我会失去一些我需要的其他功能(例如列表中的激活状态)。有谁知道如何在不从 list 中删除 targetSdkVersion=11 的情况下解决此问题(启用菜单按钮)?

最佳答案

阿罗梅罗, 不要忘记使用方法的 fragment 版本覆盖 onCreateOptionsMenu,类似于:

    @Override
    public void onCreateOptionsMenu (Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.queue_options, menu);
        super.onCreateOptionsMenu(menu, inflater);
    }

顺便说一句,这会进入 fragment ,并添加到 Activity 的膨胀菜单(如果有的话)。我自己也有同样的问题,直到我弄清楚了。

关于android - fragment 未接收菜单回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6279571/

相关文章:

android - 在应用程序退出时保存值

java - Android开发中的循环继承——片段、 Activity 和界面

android - 在 fragment 中获取对 LinearLayout 的引用

java - Android - 找不到合适的构造函数

android - 致命异常 : java. lang.IllegalStateException:保存状态失败: Activity fragment 已从 FragmentManager 中删除

android - 如何在 fragment 内的 webview 中控制导航历史记录

java - progressDialog 在 fragment 打开之前被关闭

java - 尝试使用 SmbFileInputStream

java - 无法在 Android 中将 java 字符串转换为 JSON 数组

Android - 拖放 - 列表重新排列