7

我正在尝试使用Eclipse 中的 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'类型中创建常量'菜单' . 我已经分别完成了,每次我保存项目以便重建时,它都会自动删除包含的行。

对于该领域,这已经完成。- 公共静态对象菜单;对于常数,这是完成的。- 公共静态最终字符串菜单 = null;

所以我现在有点卡住了,希望得到一些急需的帮助。

4

4 回答 4

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>

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

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

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

于 2012-08-16T14:25:52.400 回答
4

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

于 2012-11-22T17:59:35.410 回答
1

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

于 2012-08-16T14:23:11.153 回答
0

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

于 2013-12-31T08:44:01.073 回答