我正在尝试制作我的第一个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>
答案 0 :(得分:1)
R.id.container
应该是布局R.layout.activity_main
您必须编辑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。