R文件没有生成必要的变量

时间:2014-03-10 21:25:57

标签: java android eclipse adt

我正在尝试制作我的第一个Android应用程序HelloWorld。我正在关注this tutorial,但它没有评论我的问题。我无法运行应用程序,因为MainActivity.java中的错误,在注释行的“容器”上:

public class MainActivity extends ActionBarActivity {

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

        if (savedInstanceState == null) {
            getSupportFragmentManager().beginTransaction()
                    .add(R.id.container, new PlaceholderFragment()) //error line
                    .commit();
        }
    }

    //more code

Eclipse建议的解决方案是添加字段或常量“容器”来键入“id”。当我尝试这样做时,Eclipse会自动恢复更改。

该文件是自动生成的,我不知道其中发生了什么,因为我是Android开发的完全初学者。如何解决或解决此错误?

错误的鼠标悬停文本说“容器无法解析或不是字段”。

这是我的activity_main.xml:

<?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>

2 个答案:

答案 0 :(得分:1)

R.id.container应该是布局R.layout.activity_main

中的ID

您必须编辑layout/activity_main.xml才能拥有

修改

        getSupportFragmentManager().beginTransaction()
                .add(R.id.container, new PlaceholderFragment()) //error line
                .commit();

将片段添加到ID为ViewGroup的{​​{1}}。 R.id.container将在PlaceholderFragment内创建其视图。

我知道你现在开始听起来有点令人困惑,但很快就会很自然。

答案 1 :(得分:0)

您的activity_main.xml中没有id = container的任何窗口小部件。如果需要,可以按如下方式将LinearLayout的id设置为容器(通过添加另一行):

android:id="@+id/container

在这种情况下,片段将被添加到EditText和Button小部件下面的LinearLayout。