Java 未调用片段内的菜单

Java 未调用片段内的菜单,java,android,Java,Android,下面是我调用的onCreateView方法 @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { Log.d("Does", "get called"); inflater.inflate(R.menu.menuitem, menu); super.onCreateOptionsMenu(menu, inflater); } 我的操作栏中没有调用日志语句或菜单 更新:我

下面是我调用的onCreateView方法

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    Log.d("Does", "get called");
    inflater.inflate(R.menu.menuitem, menu);
    super.onCreateOptionsMenu(menu, inflater);
}
我的操作栏中没有调用日志语句或菜单

更新:我尝试从片段的onCreate方法调用此函数,但菜单未显示

@Override
public View onCreateView(LayoutInflater inflater, 
        ViewGroup container, Bundle savedInstanceState) {   
          setHasOptionsMenu(true);
          return inflater.inflate(R.layout.layout1, container, false);
}
Menu.xml

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

您需要从片段的一个起始生命周期方法中调用。最好是在创建(…)时从
内创建

在最简单的情况下,片段的
onCreate
方法如下所示:

<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@+id/section" android:title="@string/section"
        android:icon="@drawable/ic_section"
        android:showAsAction="always" />

    <item android:id="@+id/refresh" android:title="@string/refresh" 
        android:icon="@drawable/ic_refresh"
        android:showAsAction="always" />

    <item android:id="@+id/edit_patient" android:title="@string/edit_patient" 
        android:icon="@drawable/ic_editpatient"
        android:showAsAction="always" />    

    <item android:id="@+id/about" android:title="@string/about"
        android:showAsAction="never" />

    <item android:id="@+id/help" android:title="@string/help"
        android:showAsAction="never" />

    <item android:id="@+id/signout" android:title="@string/signout"
        android:showAsAction="never" />

</menu>
另外,调用
super.onCreateOptions菜单(菜单,充气机)充气后,自定义菜单将重置刚充气的菜单为空菜单

因此,请致电:

@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setHasOptionsMenu(true);
}
或:


此外,如果您在姜饼设备上进行测试,如果宿主
活动
不包含自己的菜单项,则可能不会显示菜单。

您需要从片段的一个起始生命周期方法中调用。最好是在创建(…)
时从
内创建

在最简单的情况下,片段的
onCreate
方法如下所示:

<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@+id/section" android:title="@string/section"
        android:icon="@drawable/ic_section"
        android:showAsAction="always" />

    <item android:id="@+id/refresh" android:title="@string/refresh" 
        android:icon="@drawable/ic_refresh"
        android:showAsAction="always" />

    <item android:id="@+id/edit_patient" android:title="@string/edit_patient" 
        android:icon="@drawable/ic_editpatient"
        android:showAsAction="always" />    

    <item android:id="@+id/about" android:title="@string/about"
        android:showAsAction="never" />

    <item android:id="@+id/help" android:title="@string/help"
        android:showAsAction="never" />

    <item android:id="@+id/signout" android:title="@string/signout"
        android:showAsAction="never" />

</menu>
另外,调用
super.onCreateOptions菜单(菜单,充气机)充气后,自定义菜单将重置刚充气的菜单为空菜单

因此,请致电:

@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setHasOptionsMenu(true);
}
或:


另外,如果你在姜饼设备上进行测试,如果托管
活动
不包含自己的菜单项,则该菜单可能不会显示。

您使用的android版本是指api级别。@Abhijit请同时添加您的R.menu.menuitem xml文件。您使用的android版本是指api级别。@Abhijit请同时添加您的R.menu.menuitem xml文件当我试图从activity onCreate()方法调用SetHasOptions菜单(true)时,我得到了这个错误。“类型BaseActivity的方法setHasOptionsMenu(boolean)未定义”您需要从片段中调用此方法,如上所述。我正在Google Nexus tablet上测试它,因此在这种情况下,我应该怎么做。@keyboardsurfer,如果您在姜饼设备上测试,如果托管活动不包含自己的菜单项,则可能不会显示该菜单。我也有同样的问题,你能再解释一下吗?(我想)只是在这里加上我的2个字母。这篇文章帮助我度过了难关,但还不够。据说我一直在使用工具栏关注最新的Google文档(Material Design和AppCompat v21),我最初是以“独立”的方式添加工具栏的(你可以在这里查看)。这意味着我的工具栏没有连接并用作操作栏。因此,帖子内容在这里对我没有帮助。当我改变了处理工具栏的方式(现在使用setSupportActionBar())时,一切都很顺利。当我试图从activity onCreate()方法调用setHasOptions菜单(true)时,我遇到了这个错误。“类型BaseActivity的方法setHasOptionsMenu(boolean)未定义”您需要从片段中调用此方法,如上所述。我正在Google Nexus tablet上测试它,因此在这种情况下,我应该怎么做。@keyboardsurfer,如果您在姜饼设备上测试,如果托管活动不包含自己的菜单项,则可能不会显示该菜单。我也有同样的问题,你能再解释一下吗?(我想)只是在这里加上我的2个字母。这篇文章帮助我度过了难关,但还不够。据说我一直在使用工具栏关注最新的Google文档(Material Design和AppCompat v21),我最初是以“独立”的方式添加工具栏的(你可以在这里查看)。这意味着我的工具栏没有连接并用作操作栏。因此,帖子内容在这里对我没有帮助。当我改变处理工具栏的方式(现在使用setSupportActionBar())时,一切都很顺利。