4

我有一个主细节视图,主片段和细节片段都有自己的操作栏菜单项;master有一些,detail有一些,但是details action bar item在点击时不调用onOptionsItemSelected。这个问题在平板电脑上。

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

菜单.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>

充气机工作正常,主细节视图中的两个片段都有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");
}
4

1 回答 1

2

我从这个链接得到了解决方案。

它说我们可以通过不拦截Fragment Activity(Fragment的Parent Activity)中的相同事件来实现我们想要的行为。

该链接显示了两种方法,但是我通过在 FragmentActivity 中使用以下内容来完成我的工作

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

试试看。

于 2013-10-30T19:40:48.017 回答