我创建了一个单项菜单,但弹出时不显示图标,只显示文本。我错过了一个设置。
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>
请帮助
答案 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>