Android应用程序中不显示图标

时间:2013-11-24 17:25:27

标签: android android-optionsmenu android-icons

对于Android应用程序,我是完全新手。请多多包涵。我正在尝试制作一个菜单选项栏但不知何故图标没有显示。

我在stackoverflow上找到了这个问题的答案,我遇到的答案是“在Android 3.0+上,选项菜单的首选方法(操作栏中的溢出菜单)不会显示图标。如果你拥有11或更高版本的android targetSdkVersion,图标将永远不会出现在Android 3.0+的菜单中。如果您将选项菜单项提升为工具栏按钮,图标将会显示,并且图标将显示在Android 1.x /上2.x设备。“我很抱歉,但我不确定这意味着什么。有人可以指导我朝正确的方向发展吗?任何帮助将不胜感激!

我不确定我做错了什么。到目前为止,这是我的代码。

MainActivity.java

package com.example.useoptionsmenu;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends Activity {

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

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.about:
    startActivity(new Intent(this, About.class));
    return true;
    case R.id.help:
    startActivity(new Intent(this, Help.class));
    return true;
    default:
    return super.onOptionsItemSelected(item);
    }
}

}

main.xml中

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

<item
    android:id="@+id/action_settings"
    android:orderInCategory="100"
    android:showAsAction="never"
    android:title="@string/action_settings"/>
<item
    android:id="@+id/about"
    android:showAsAction="always"
    android:orderInCategory="1"
    android:icon="@drawable/ic_action_about"
    android:title="About"/>
<item
    android:id="@+id/help"
    android:showAsAction="always"
     android:orderInCategory="2"
    android:icon="@drawable/ic_action_help"
    android:title="Help"/>

</menu>

的AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.useoptionsmenu"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="18" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.useoptionsmenu.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.example.useoptionsmenu.About"
        android:label="@string/title_activity_about" >
    </activity>
    <activity
        android:name="com.example.useoptionsmenu.Help"
        android:label="@string/title_activity_help" >
    </activity>
</application>

</manifest>

1 个答案:

答案 0 :(得分:0)

您必须将此项添加到要在标题中显示的项目中:

    android:showAsAction="ifRoom"

以便您的菜单为:

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

<item
    android:id="@+id/action_settings"
    android:orderInCategory="100"
    android:showAsAction="ifRoom"
    android:title="@string/action_settings"/>
<item
    android:id="@+id/about"
    android:showAsAction="ifRoom"
    android:orderInCategory="1"
    android:icon="@drawable/ic_action_about"
    android:title="About"/>
<item
    android:id="@+id/help"
    android:showAsAction="ifRoom"
     android:orderInCategory="2"
    android:icon="@drawable/ic_action_help"
    android:title="Help"/>

</menu>

从你不会在标题中显示的项目中删除android:showAsAction =“ifRoom”行。