【发布时间】:2012-05-21 16:26:19
【问题描述】:
虽然我可以在我的 Java 代码中设置操作栏图标,但是当我在我的 XML 中设置它们时无法显示它们。我更喜欢在 XML 中设置它们。
以下是我实现同一目标的两次尝试 - 操作栏上的三个图标。你能解释一下为什么第二种方法会失败吗?
(注意,在我的最终版本中,我打算将三个中的两个保留在溢出菜单中,我只是想在测试期间显示所有三个。)
这个 XML:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menuConfig"
android:title="Configuration"
/>
<item android:id="@+id/menuAbout"
android:title="About"
/>
<item android:id="@+id/menuHelp"
android:title="Help"
/>
</menu>
还有这个 Java:
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.optionsmenu, menu);
MenuItem settings = menu.findItem(R.id.menuConfig);
settings.setIcon(R.drawable.settings);
settings.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
MenuItem about = menu.findItem(R.id.menuAbout);
about.setIcon(R.drawable.about);
about.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
MenuItem help = menu.findItem(R.id.menuHelp);
help.setIcon(R.drawable.help);
help.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
return true;
}
制作这个展示:
然而,这个 XML:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menuConfig"
android:title="Configuration"
android:icon="@drawable/settings"
showAsAction="ifRoom"
/>
<item android:id="@+id/menuAbout"
android:title="About"
android:icon="@drawable/about"
showAsAction="ifRoom"
/>
<item android:id="@+id/menuHelp"
android:title="Help"
android:icon="@drawable/help"
showAsAction="ifRoom"
/>
</menu>
还有这个 Java:
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.optionsmenu, menu);
return true;
}
制作这个展示:
【问题讨论】:
标签: android android-actionbar android-icons