MENU中不允许使用元素项目

时间:2011-03-24 21:21:31

标签: android android-layout android-2.2-froyo android-menu

我正在尝试制作自定义选项菜单。使用此代码后,我得到:此处不允许使用元素项

代码:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent">
    <item android:id="@+id/morsoid_settings"
          android:icon="@drawable/ic_new_game"
          android:title="@string/new_game" />
    <item android:id="@+id/morsoid_close"
          android:icon="@drawable/ic_help"
          android:title="@string/help" />
</menu>

灵感来自:Android dev guide

4 个答案:

答案 0 :(得分:10)

我不知道它是否有所作为,但您是否将菜单放在res / menu中而不是res / layout中?

答案 1 :(得分:3)

尝试省略布局属性。以下是文档中的示例:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/new_game"
          android:icon="@drawable/ic_new_game"
          android:title="@string/new_game" />
    <item android:id="@+id/help"
          android:icon="@drawable/ic_help"
          android:title="@string/help" />
</menu>

修改 - 同时确保您使用MenuInflater作为指南建议:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.game_menu, menu);
    return true;
}

使用LayoutInflater会导致<menu>被解释为视图元素,而它实际上是一个菜单资源。

答案 2 :(得分:0)

不是100%确定您在讨论编译错误,或者在布局文件中显示系统中显示的错误。

使用Idea IntelliJ (10.5)我将上面显示的示例代码粘贴到menu.xml文件中时出错。

然而,在建立项目后,它消失了。我仍然看到编辑menu.xml文件时看到的layout_width / height错误,但它不会影响构建或运行时行为。

答案 3 :(得分:0)

这是一个古老的问题,但是我认为自从我在2019年经历过这个问题之后,我就将解决方案放在这里:

我在Android Studio中收到一条警告,说将<item>放在<menu>内时“此处不允许元素项目”。事实证明,我的问题是在src / main / res / layout文件夹中,而不是在src / main / res / menu文件夹中。