操作栏

时间:2017-03-05 09:25:56

标签: android menu show

我的问题是一个受欢迎的问题,我阅读并尝试了很多相关的帖子,但我没有意识到预期的结果,显示菜单。我还没有找到合适的解决方案。

我的应用程序在Android 4.2.2版上完美运行。 (版本代码17)我在Galaxy Duos手机上尝试过它。

我使用Android版本7,0(版本代码24) 我尝试了更多目标SDK版本,8,19,24,25,没有目标SDK规范。

以下是

的一些相关部分

-build.gradle

android {     compileSdkVersion 25     buildToolsVersion '25 .0.2'     defaultConfig {         applicationId“com.my.mobile.apps.mnb”         minSdkVersion 8     } }

-AndroidManifest.xml

android:minSdkVersion =“8”

-optionsmenu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/exit"
    android:orderInCategory="102"
    android:showAsAction="ifRoom|withText"
    android:icon="@drawable/ic_menu_exit">
    android:title="@string/menuitem_exit">
</item>
<item android:id="@+id/about"
    android:orderInCategory="101"
    android:showAsAction="ifRoom|withText"
    android:icon="@drawable/ic_menu_info_details">
    android:title="@string/menuitem_about">
</item>
</menu>

-Main.java

public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.optionsmenu, menu);
    return super.onCreateOptionsMenu(menu);
}
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.about:
            Intent intent = new Intent();
            intent.setClass(getApplicationContext(), Info.class);
            startActivity(intent);      
            return true;
        case R.id.exit:
            Intent intentData = new Intent();
            intentData.putExtra("IS_EXIT", new Boolean(true));
            setResult(android.app.Activity.RESULT_OK, intentData);              
            finish();
            System.exit(1);
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

提前谢谢。

1 个答案:

答案 0 :(得分:0)

there is a problem in enclosing of menu items:

 <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/exit"
    android:orderInCategory="102"
    android:showAsAction="ifRoom|withText"
    android:icon="@drawable/ic_menu_exit"
    android:title="@string/menuitem_exit" />  //item not enclosed properly

<item android:id="@+id/about"
    android:orderInCategory="101"
    android:showAsAction="ifRoom|withText"
    android:icon="@drawable/ic_menu_info_details"
    android:title="@string/menuitem_about" />
</menu>

Keep it simple:

 @Override
public boolean onPrepareOptionsMenu(final Menu menu) {
    getMenuInflater().inflate(R.menu.optionsmenu, menu);
    return super.onCreateOptionsMenu(menu);
}

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