Android开发者MyFirstApp - “菜单无法解析或不是字段”

时间:2012-08-16 14:20:59

标签: android eclipse

我正在尝试使用Eclipse中的tutorial provided by android构建我的第一个应用程序。

我已经完成了所有事情但是我收到错误消息...“菜单无法解析或不是字段”。该教程没有提及任何关于菜单的内容,我确信我没有做任何事情。它抱怨我在评论中标出了这条线。

package com.example.my.first.app;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);        <!--this line-->
    return true;
}
}

这是教程要求我编辑的主要活动页面,如下所示......

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<EditText android:id="@+id/edit_message"
    android:layout_weight="1"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:hint="@string/edit_message" />
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/button_send" />
</LinearLayout>

关于我在其他问题上找到的建议我已经尝试点击它并包含它所要求的“类型'R'中的”创建字段'菜单'或类型中的“创建常量'菜单' 'R'。我已经单独完成了两次,每次保存项目以便重建时,它会自动删除包含的行。

对于这个领域,这已经完成了。 - public static Object菜单; 对于常数,这已经完成了。 - public static final String menu = null;

所以我现在有点陷入困境,并希望得到一些急需的帮助。

4 个答案:

答案 0 :(得分:8)

onCreateOptionsMenu方法引用一个菜单,该菜单必须位于/ res / menu文件夹中并以XML格式实现。看起来像这样:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_settings"
    android:title="@string/menu_settings"
    android:orderInCategory="100" />
</menu>

您可以复制/粘贴此代码,将其保存为/ res / menu文件夹中的activity_main.xml(如果没有,则创建一个)或只删除整个方法

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);        <!--this line-->
    return true;
}

当您点击设备上的菜单按钮时,这样做会打开一个菜单,如果删除该方法,则不会有这样的菜单。如果需要,您仍然可以创建一个。

答案 1 :(得分:4)

检查并查看您是否正在导入android.R。如果是这样,请删除该行。

答案 2 :(得分:1)

确保将menu.xml文件放在res / menu /目录中。

答案 3 :(得分:0)

使用Eclipse IDE ---&gt; Eclipse中的Package Explore&gt; res&gt;菜单&gt; main.xml或main_activity_actions文件...检查其名称..并将其放入语句inflater.inflate(R.menu.main,menu);您在inflater语句中使用的名称无法解析或在您的应用中是字段..所以首先确认它然后菜单目录中的正确文件名是什么,然后在您的语句中使用它。