我试图以这种方式创建一些MenuItem:
main_activity_actions.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/item_add"
android:icon="@drawable/ic_action_add"
android:orderInCategory="1"
android:title="@string/action_add"
android:showAsAction="always" />
<item
android:id="@+id/item_settings"
android:orderInCategory="2"
android:title="@string/action_settings"
android:showAsAction="never" />
<item
android:id="@+id/item_about"
android:orderInCategory="3"
android:title="@string/action_about"
android:showAsAction="never" />
</menu>
MainActivity.java
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main_activity_actions, menu);
return super.onCreateOptionsMenu(menu);
}
我无法在顶部菜单栏上显示这些项目。请问我如何才能完成这项工作?
提前致谢!
答案 0 :(得分:1)
我明白了。使用android支持库v7 appcompat,您必须使用特定的命名空间才能正确使用属性showAsAction
。以下是您需要对xml文件执行的操作:
将自定义命名空间声明添加到文件中,如下所示:
xmlns:app="http://schemas.android.com/apk/res-auto"
然后使用android:showAsAction
。
app:showAsAction
这将允许显示菜单项。
这是结果文件代码:
<?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/item_add"
android:icon="@drawable/ic_action_add"
android:orderInCategory="1"
android:title="@string/action_add"
app:showAsAction="always" />
<item
android:id="@+id/item_settings"
android:orderInCategory="2"
android:title="@string/action_settings"
app:showAsAction="never" />
<item
android:id="@+id/item_about"
android:orderInCategory="3"
android:title="@string/action_about"
app:showAsAction="never" />
</menu>
希望我帮助过你。