菜单未使用AppCompat库显示在ActionBar中

JES*_*SUS -1 xml android android-appcompat android-menu

AppCompat在教会应用程序中使用库,但我的菜单图标没有出现ActionBar.

public class MainActivity extends ActionBarActivity {

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // toggle nav drawer on selecting action bar app icon/title
        if (mDrawerToggle.onOptionsItemSelected(item)) {
            return true;
        }
        // Handle action bar actions click
        switch (item.getItemId()) {
        case R.id.action_settings:
            return true;

         case R.id.menu_item_share:
            shareApp(); 
            return true;  

        case R.id.menu_item_about:
            Intent intentAbout = new Intent(MainActivity.this, AboutActivity.class);
            startActivity(intentAbout);
            return true;

        default:
            return super.onOptionsItemSelected(item);
        }
    }
Run Code Online (Sandbox Code Playgroud)

我写了正确的xml,因为我读它应该是:

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

     <item 
      android:id="@+id/menu_item_share" 
      android:title="@string/menu_share" 
      android:icon="@drawable/ic_action_share" 
      android:showAsAction="ifRoom" /> 

    <item 
      android:id="@+id/menu_item_about" 
      android:title="@string/menu_about" 
      android:icon="@drawable/ic_action_about" 
      android:showAsAction="ifRoom" />
Run Code Online (Sandbox Code Playgroud)

注意:按下设备上的MENU按钮,它们会出现.

Rag*_*dan 6

改变这个

android:showAsAction="never"
Run Code Online (Sandbox Code Playgroud)

yourapp:showAsAction="never"
Run Code Online (Sandbox Code Playgroud)

也用 yourapp:showAsAction="always"

您还可以使用"始终"声明项目始终显示为操作按钮.但是,您不应该强制项目以这种方式出现在操作栏中.

注意:如果操作栏中没有足够的空间用于操作项,则菜单项将显示在仅显示标题的溢出处.

其他人也一样.

引用文档

在使用支持库定义的任何XML属性时,这是必需的,因为旧设备上的Android框架中不存在这些属性.因此,您必须使用自己的命名空间作为支持库定义的所有属性的前缀.

你已经有了

xmlns:yourapp="http://schemas.android.com/apk/res-auto"
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请阅读

http://developer.android.com/guide/topics/ui/actionbar.html