如何正确显示menuitem?

时间:2014-09-09 22:51:06

标签: java android menuitem

我试图以这种方式创建一些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);
}

我无法在顶部菜单栏上显示这些项目。请问我如何才能完成这项工作?

提前致谢!

1 个答案:

答案 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>

希望我帮助过你。