Android开发 - getMenuInflater(R.menu.main,菜单)

时间:2014-12-16 21:47:48

标签: android

我正在学习android并遵循一个简单的相机应用教程。我已经复制了一段代码,但我收到了错误,我不确定原因。

我正在使用的教程是,

http://iwearshorts.com/blog/android-development-102/

代码片段是:

@Override
public boolean onCreateOptionsMenu(Menu menu){
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

在我的项目中,我收到了R.menu.main的错误。更具体地说,'R.menu.main'中的单词菜单无法解析或不是字段。

我没有在教程中看到任何我错过的导致这种情况的内容。我唯一能想到的是它与使用不同版本的Android有关。我不知道如何检查这个。

我感谢任何建议,谢谢。

6 个答案:

答案 0 :(得分:8)

menu.xml文件夹中添加/res/menu/文件,这是一个示例:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:title="my menu Item!"
        app:showAsAction="never"/>

</menu>

答案 1 :(得分:1)

默认情况下,change文件名R.menu.main to R.menu.menu_main

src/main/res/menu/menu_main.xml中添加相机项目

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity">

    <item android:id="@+id/action_camera"
        android:title="Camera"
        android:showAsAction="always"/>

</menu>

答案 2 :(得分:1)

右键单击res /目录上的

,然后选择新的&gt;&gt; android资源文件。 然后根据需要命名您的菜单 但是使资源类型是菜单 和android studio将为您创建它 然后在文件中你应该找到这个

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

然后根据需要添加项目

<item 
//item attributes>
</item>

答案 3 :(得分:1)

试试这个......

public boolean OnCreateOptionsMenu(Menu menu){
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}

答案 4 :(得分:1)

您收到此错误,因为android studio仍然没有用创建的新文件构建gradle。

因此,您使用Gradle Files搜索Sync项目,然后重启android studio。

然后您将可以看到它已经识别出res目录中的菜单目录。

希望有帮助。

答案 5 :(得分:0)

您的应用正在寻找位于main.xml文件夹中名为src/main/res/menu/的文件。

此文件用于在顶部ActionBar中创建按钮。如果您不需要这些按钮,则juste会删除该行并仅返回false。