错误消息";“未找到视图”;在Android中创建片段时

错误消息";“未找到视图”;在Android中创建片段时,android,fragment,Android,Fragment,我开始学习Android,在创建片段时遇到了一个问题。我尝试过以每个教程指定的几乎所有方式在代码中创建片段,但每次我这样做时,程序都会立即崩溃,并出现日志错误“找不到[id of fragment for container]的视图” 我从中创建片段的活动是: public class MainActivity extends FragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) {

我开始学习Android,在创建片段时遇到了一个问题。我尝试过以每个教程指定的几乎所有方式在代码中创建片段,但每次我这样做时,程序都会立即崩溃,并出现日志错误“找不到[id of fragment for container]的视图”

我从中创建片段的活动是:

public class MainActivity extends FragmentActivity {

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

    FragmentManager fm = getSupportFragmentManager();
    FragmentTransaction ft = fm.beginTransaction();

    FragmentTestActivity activity = new FragmentTestActivity();
    ft.add(R.id.fragment_container, activity);
    ft.commit();
}


}
如果

public class FragmentTestActivity extends Fragment {

public View onCreateView(LayoutInflater inflater, ViewGroup parent,
                         Bundle savedInstanceState) {
    View vw = inflater.inflate(R.layout.fragment, parent, false);
    return vw;
}
}
片段的布局是

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/fragment_container" >


</FrameLayout>  


目前它没有做任何有用的事情,我只是想在继续做任何有用的事情之前看看我是否可以制作一个片段,但是每次我尝试该程序时都会崩溃。

activity\u main.xml
必须有一个id为
fragment\u container
框架布局

您的
FrameLayout
就是容器。将片段添加到
框架布局
。您的片段由活动托管

另外,我认为在片段布局中不需要框架布局。对于片段布局,您可以有其他视图

ft.add(R.id.fragment_container, activity);
在此
fragment\u容器中
需要在活动布局中,而不是在片段布局中。

通过这样做

ft.add(R.id.fragment_container, activity);
ft.add(R.id.fragment_container, activity);
您正试图将片段添加到MainActivity中id为
R.id.Fragment\u容器的视图中。由于
fragment\u容器
如果是片段布局的一部分而不是MainActivity布局的一部分,则会导致错误


确保您有一个视图组,该视图组的id
R.id.fragment\u容器
位于MainActivity布局内,并在fragment布局内重命名主视图组的id。

以及活动的布局?传递给片段事务的id不是片段容器的id吗?@Ghost否。不是。在我的帖子里试试这个建议,它会有用的。谢谢,它确实有用。我一定是在什么地方误读了什么。我已经将容器更改为主布局,它确实有效。谢谢你的帮助。@Raghunandan它一定是FrameLayout吗?或者可以是线性布局,或者像这样的相对布局?它可以是一个视图组
ft.add(R.id.fragment_container, activity);