2013-07-26 23 views
4

我有一个主细节视图,主细节片段和他们自己的操作栏菜单项;主人有一些细节有一些,但细节操作栏项目单击时不会调用onOptionsItemSelected。这个问题在平板电脑上。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> 

充气工作正常并且两个在主详细视图中的片段在它们onCreate方法setHasOptionsMenu(true);

EDIT

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"); 
} 
+0

你重写了你的FragmentActivity中的onCreateOptionsMenu方法吗? –

+0

@AdriánRodríguez更新了问题,这就是片段活动中的onCreateOptionsMenu – Eriz

+0

这是我想的问题。你必须告诉加载哪个菜单。试试这个:@Override public boolean onCreateOptionsMenu(菜单菜单){ getSupportMenuInflater()。inflate(R.menu.menu,menu); 返回true; } –

回答

2

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

它说,我们可以通过不截取片段活动(片段的父活动)中的相同事件来实现期望的行为。

此链接显示在以下FragmentActivity

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

尝试一下两种方式,但是我把我的东西通过使用来完成。

相关问题