我做错了什么……;-)
在教程中,我应该“创建第二个 Activity ”,教程的屏幕截图显示了如何在 Eclipse 中执行此操作,但我使用的是 AS。无论如何,我在 Android Studio 中添加了一个新的空白 Activity ,生成的 DisplayMessageActivity.java 文件看起来与教程中的文件相同。
然后教程说在onCreate方法中加入如下代码:
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
Q1:这里R.id.container中的'container'这个词在AS中被标红了;也就是说,无法解析符号“容器”。本教程对此没有任何说明,我也不知道如何声明它。这是什么?
在 DisplayMessageActivity 的下方我应该添加:
public static class PlaceholderFragment extends Fragment {
public PlaceholderFragment() {}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_display_message, container, false);
return rootView;
}
}
Q2:R.layout.fragment_display_message到底是什么?我只有 R.layout.activity_display_message。
感谢任何建议,谢谢!
最佳答案
here the word 'container' in R.id.container is marked in red in AS; that is, can not resolve symbol 'container'.
那是因为您的 activity_display_message.xml
中没有容器 ID 布局,以便在 fragment 被膨胀/创建时显示。
示例:
在您的activity_display_message
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container" <--- that is the id you must have --->
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true" >
</RelativeLayout>
.
What on earth is R.layout.fragment_display_message??
它是您的 fragment 的布局,因此当它膨胀时,它将添加到您的 activity_main 布局的顶部。
解决方法:
在您的 layout 文件夹
中创建一个名为 fragment_display_message.xml
的 layout
关于Android 教程 "Create the second activity"不适用于 Android Studio,或者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24252334/