Android Emulator中未呈现的菜单项

Android Emulator中未呈现的菜单项,android,Android,我正在尝试在顶部操作栏中创建注销菜单项。我执行了以下步骤: 1) res>右键单击>新建>android资源目录>资源类型>菜单>确定 2) 右键单击新创建的菜单文件夹并选择new>file>main_menu.xml 3) 根据这些文档,我在main_menu.xml文本视图中添加了以下xml: <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/

我正在尝试在顶部操作栏中创建注销菜单项。我执行了以下步骤:

1) res>右键单击>新建>android资源目录>资源类型>菜单>确定

2) 右键单击新创建的菜单文件夹并选择new>file>main_menu.xml

3) 根据这些文档,我在main_menu.xml文本视图中添加了以下xml:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
</menu>
我运行了应用程序,但菜单项从未出现

通过研究,我将xml更改为:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="schemas.android.com/apk/res-auto">
    <item android:id="@+id/action_settings" android:title="Logout"
          android:orderInCategory="100" app:showAsAction="always"/>
</menu>

但菜单项未显示在MainActivity屏幕上

您应该在onCreateOptionMenu活动方法:getMenuInflater()中为菜单充气。您应该在onCreateOptionMenu活动方法:getMenuInflater()中为菜单充气。充气(R.menu.main\u菜单,菜单)

这篇文章中还有一些有用的注释:

Android 5.0(API 21)中引入了工具栏。如果你愿意 要在Android早期版本的设备上使用工具栏,您可以 使用appcompat-v7支持库提供的下载端口

目标SDK版本低于API 11的应用程序使用 选项菜单,如果设备上有此按钮。选择权 如果用户按下选项按钮,则显示菜单。工具栏 工具栏优于选项菜单,因为操作栏非常清晰 可见,而选项菜单仅在请求时显示

工具栏中的条目通常称为操作。尽管如此 可以通过代码在操作栏中创建条目,通常 在XML资源文件中定义。 每个菜单定义都包含在res/menu文件夹中的单独文件中。Android工具会自动创建一个引用 添加到R文件中的菜单项,以便可以 访问

MenuInflator类允许膨胀XML中定义的操作 文件并将其添加到操作栏。可以访问MenuInflator 通过活动中的getMenuInflator()方法

@重写公共布尔onCreateOptions菜单(菜单菜单){
MenuInflater充气机=getMenuInflater();
充气器。充气(R.menu.mainmenu,menu);返回true;}

如果选择了某个操作,则 相应的活动被调用。它接收所选操作作为 参数

@覆盖公共布尔值OnOptions ItemSelected(MenuItem项){
开关(item.getItemId()){您可以更改 下面的代码演示了这一点

ActionBar ActionBar=getActionBar();ActionBar.hide(); actionBar.show()


以下是该文章中的有用注释:

Android 5.0(API 21)中引入了工具栏 要在Android早期版本的设备上使用工具栏,您可以 使用appcompat-v7支持库提供的下载端口

目标SDK版本低于API 11的应用程序使用 选项菜单,如果设备上有此按钮。选项 如果用户按下选项按钮,则显示菜单。工具栏 工具栏优于选项菜单,因为操作栏非常清晰 可见,而选项菜单仅在请求时显示

工具栏中的条目通常称为操作 可以通过代码在操作栏中创建条目,通常 在XML资源文件中定义。 每个菜单定义都包含在res/menu文件夹中的一个单独文件中。Android工具会自动创建一个引用 添加到R文件中的菜单项,以便可以 访问

MenuInflator类允许膨胀XML中定义的操作 文件并将其添加到操作栏。可以访问MenuInflator 通过活动中的getMenuInflator()方法

@重写公共布尔onCreateOptions菜单(菜单菜单){
MenuInflater充气机=getMenuInflater();
充气器。充气(R.menu.mainmenu,menu);返回true;}

如果选择了某个操作,则 相应的活动被调用。它接收所选操作作为 参数

@覆盖公共布尔值OnOptions ItemSelected(MenuItem项){
开关(item.getItemId()){您可以更改 下面的代码演示了这一点

ActionBar ActionBar=getActionBar();ActionBar.hide(); actionBar.show()


这两篇文章对我也很有用:1)2)这两篇文章对我也很有用:1)2)
Should use app:showAsAction with appcompat library with xmlns:app="schemas.android.com/apk/res-auto"'; 
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="schemas.android.com/apk/res-auto">
    <item android:id="@+id/action_settings" android:title="Logout"
          android:orderInCategory="100" app:showAsAction="always"/>
</menu>
xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity"