android菜单项没有显示图标?

时间:2012-03-07 02:26:54

标签: android

我创建了一个单项菜单,但弹出时不显示图标,只显示文本。我错过了一个设置。

java File

package com.menu;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;

public class MymenuActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu, menu);
        return true;
    }
}

menu.xml文件

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:id="@+id/icon"
        android:icon="@drawable/ic_launcher" />
    <item android:id="@+id/text"
        android:title="Text" />
    <item android:id="@+id/icontext"
        android:title="Icon"
        android:icon="@drawable/ic_launcher" />

</menu>

请帮助

2 个答案:

答案 0 :(得分:2)

检查您的API级别,可能与此相关:

取自:Android menu icons are not displaying when the API level is above 10

从API Level 11(Android Honeycomb)开始,Android为菜单引入了一个新概念。为该API级别构建的设备不再具有菜单键。按下键后,不再显示菜单,而是有一个新的UI组件:Actionbar。 Actionbar现在显示与空间允许的菜单项一样多的内容,然后创建一个按钮,在覆盖图中显示其余的菜单项。

我会假设您正在为您的活动使用某种主题,以防止Actionbar出现,因此没有可见的菜单项。另请阅读有关如何支持平板电脑和手机的指南,以便开始了解新操作栏的工作原理。

答案 1 :(得分:0)

您应该添加 showAsAction =“ifRoom”,以便在有足够空间时将其显示为图标。

另外,请注意,如果您使用任何类型的支持库,则应检查此属性的命名空间。

示例:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.example.test.MainActivity" >

    <item
        android:icon="@drawable/ic_action_alerts_and_states_warning_holo_dark"
        app:showAsAction="ifRoom" 
        android:title="sorting"/>
</menu>