onOptionsItemSelected未从片段主详细信息视图中调用

时间:2013-07-26 12:15:10

标签: android menu android-fragments actionbarsherlock

我有一个主详细视图,主要和细节片段都有自己的操作栏菜单项;主人有一些,细节有一些,但详细信息操作栏项在点击时不会调用onOptionsItemSelected。这个问题是在平板电脑上。

另一方面,如果在手机模拟器上运行相同的代码,则详细视图的操作栏项目可以正常工作。

menu.xml文件

<item
    android:id="@+id/save_menu"
    android:icon="@drawable/ic_checkmark_holo_light"
    android:showAsAction="always|withText"
    android:title="Save">
</item>
<item
    android:id="@+id/cancel_menu"
    android:icon="@drawable/ic_menu_close_clear_cancel"
    android:showAsAction="always|withText"
    android:title="Cancel">
</item>

inflater工作正常,主详细信息视图中的两个片段在setHasOptionsMenu(true);方法中都有onCreate

修改

片段活动中的

onCreateOptionsMenu

   @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    return super.onCreateOptionsMenu(menu);
}
主片段中的

onCreateOptionsMenu

@Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    super.onCreateOptionsMenu(menu, inflater);
    inflater.inflate(R.menu.itemlistactivity_menu, menu);
}
细节片段中的

onCreateOptionsMenu

 @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.addfragment_menu, menu);
    super.onCreateOptionsMenu(menu, inflater);
    System.out.println("onCreateOptionsMenu called");
}

1 个答案:

答案 0 :(得分:2)

我从this链接获得了解决方案。

它表示我们可以通过不截断片段活动(片段的父活动)中的相同事件来实现所需的行为。

此链接显示了两种方式,但我通过在FragmentActivity中使用以下来完成我的工作

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // TODO Auto-generated method stub
        return false;
    }

尝试一下。