如何用选项菜单显示图标。我尝试了以下代码,但我的选项菜单没有图像图标。我正在使用Android 4.0开发应用程序。
Java代码:
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add("Add Contacts").setIcon(
R.drawable.ic_launcher);
return true;
}
以下是我的应用程序的屏幕截图
我需要将图像显示在“添加联系人”项目的顶部。
答案 0 :(得分:4)
覆盖OnPrepareOptionsMenu
并从中添加图标
如果它高于3.0,请在xml中使用android:showAsAction
。
例如。 android:showAsAction="ifRoom|withText"
答案 1 :(得分:4)
我尝试了两行代码并且它可以工作:
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add("Add Contacts");
menu.getItem(0).setIcon(R.drawable.ic_launcher);
return true;
}
答案 2 :(得分:3)
您可以创建如下自定义菜单:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/add_contacts"
android:icon="@drawable/ic_launcher"
android:title="@string/add_contacts"
/>
</menu>
然后膨胀它
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.my_menu, menu);
return true;
}
更多相关信息: http://developer.android.com/guide/topics/ui/menus.html#options-menu
答案 3 :(得分:3)
您可以直接将其设置为xml文件。
<item android:id="@+id/add_contacts"
android:icon="@android:drawable/plus_icon"
android:title="Add Contacts"/>
答案 4 :(得分:2)
您可以尝试遵循此Link。
检查一下,告诉我它是否有效。
或者你可以做这样的事情。
创建menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/next"
android:icon="@drawable/ic_next"
android:title="@string/next" />
<item android:id="@+id/previous"
android:icon="@drawable/ic_previous"
android:title="@string/previous" />
<item android:id="@+id/list"
android:icon="@drawable/ic_list"
android:title="@string/list" />
</menu>
现在您可以在菜单上设置ICON
现在在CreateOptionMenu
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
并访问该菜单。
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.next:
Toast.makeText(this, "You have chosen the " + getResources().getString(R.string.next) + " menu option",
Toast.LENGTH_SHORT).show();
return true;
…
default:
return super.onOptionsItemSelected(item);
}
}
答案 5 :(得分:2)
要启用带有图标的“选项菜单”:
使用setOptionalIconsVisible
:
override fun onCreateOptionsMenu(menu: Menu): Boolean {
super.onCreateOptionsMenu(menu)
menuInflater.inflate(R.menu.main, menu)
if (menu is MenuBuilder){
menu.setOptionalIconsVisible(true)
}
return true
}
用Item
和showAsAction="always"
和Menu
包裹项目:
<?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:title="@string/title_menu"
android:icon="@mipmap/ic_icon_menu"
app:showAsAction="always">
<menu>
<item
android:id="@+id/action1"
android:orderInCategory="100"
android:title="@string/action1"
android:icon="@mipmap/ic_icon_action1"
app:showAsAction="never" />
</menu>
</item>
</menu>
答案 6 :(得分:1)
如果您在清单文件中使用以下某个属性,那么它将显示您的图标....
<activity android:name=".ui.CategoryActivity"
android:label="@string/app_name"
**android:theme="@android:style/Theme.NoTitleBar"**></activity>
这对我来说很好...... :) +1为我自己的努力...
**必须输入。
答案 7 :(得分:1)
最简单的方法是仅在设置菜单项时使用@drawable。
OR
只需将@drawable放在标题声明之前。
<?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/addToFavorites"
android:icon = "@drawable/ic_favorite_border_white_24dp"
android:title = "Hello"
app:showAsAction="always" />
<item
android:id ="@+id/about"
android:title ="About"
app:showAsAction="never" />
</menu>
答案 8 :(得分:0)
问题是Androidmanifest.xml。
删除android:theme="@style/AppTheme"
,它会正常工作