2012-03-07 125 views
4

我已经创建了单个项目菜单,但弹出时不显示图标,只显示文本。我错过了一个设置吗?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> 

请帮助

+1

是否'ic_launcher'绘制存在于你的目标DPI绘制资源目录? – 2012-03-07 03:27:33

+1

你解决了这个问题吗?具有完全相同的概率 – membersound 2012-05-17 21:21:23

回答

2

检查你API级别,可能可能与此有关:

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

与API开始Level 11(Android Honeycomb)Android为男性引入了一个新概念我们。为该API级别构建的设备不再具有菜单键。按下按键后不会显示菜单,而是有一个新的UI组件:操作栏。 Actionbar现在显示的空间允许的菜单项数量很多,之后会创建一个按钮,用于在叠加层中显示其余菜单项。

我会假设你正在使用某种主题来阻止操作栏出现,因此没有菜单项可见。另请阅读关于如何支持平板电脑和手持设备以了解新的操作栏如何工作的指南。

+0

“为该API级别构建的设备没有菜单键了。”完全不是这样。只要看看三星Galaxy设备! – 2013-07-24 15:37:13

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> 
+0

我有同样的问题。我忘了将xmlms:app命名空间添加到我的菜单中。确保showAsAction使用的是** app **命名空间,而不是android命名空间。 – sagesolutions 2015-04-04 14:44:25