Android API 19:操作栏不显示menu_main.xml

时间:2016-10-18 20:20:30

标签: java android xml

的manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="edu.gatech.seclass.glm">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:supportsRtl="true">
        <activity
            android:name="edu.gatech.seclass.glm.Activity.MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

menu_main.xml

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

    <item android:orderInCategory="101"
        android:icon="@android:color/background_light"
        android:id="@+id/select_list"
        android:title="Select List"
        app:showAsAction="always"/>
</menu>

MainActivity.java

public class MainActivity extends AppCompatActivity {

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

        ///...
    }

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

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch(item.getItemId()) {
            case R.id.select_list:
                return(true);

        }
        return(super.onOptionsItemSelected(item));
    }

    //...
}

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="edu.gatech.seclass.glm.Activity.MainActivity"
    android:weightSum="1">

    <ListView
        android:layout_width="match_parent"
        android:layout_height="440dp"
        android:id="@+id/groceryListContainer"
        android:layout_weight="0.66" />

    <Button
        android:text="@string/add_list"
        android:layout_width="374dp"
        android:layout_height="51dp"
        android:id="@+id/addList"
        android:onClick="addList"
        android:layout_weight="0.26" />

</LinearLayout>

我读过的所有东西都让我相信这应该有用,但我得到的动作栏只显示App Name。我已经确认onCreateOptionMenu实际上也被击中了。想法?

2 个答案:

答案 0 :(得分:0)

尝试在返回之前在onCreateOptionsMenu中添加此代码。

ActionBar actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
actionBar.setDisplayShowTitleEnabled(true);
actionBar.setTitle(mTitle);

答案 1 :(得分:0)

您实际上并未在onCreate方法中设置操作栏(): 在Android 5.0(API 21)上,它是ToolBar:

    Toolbar tb = (Toolbar) findViewById(R.id.toolbar);
    setActionBar(tb);

请看样品:

http://www.vogella.com/tutorials/AndroidActionBar/article.html https://developer.android.com/reference/android/app/ActionBar.html

这里是ToolBar和ActionBar之间的差异:

What is the difference between Action Bar and newly introduced Toolbar?