Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 用另一个片段替换一个片段_Android_Android Fragments_Fragmentmanager - Fatal编程技术网

Android 用另一个片段替换一个片段

Android 用另一个片段替换一个片段,android,android-fragments,fragmentmanager,Android,Android Fragments,Fragmentmanager,我在这里看到了与此类似的问题,但无法找出我做错了什么: 我有一个listFragment和一个detailsFragment。当按下listFragment中的按钮时,我希望它显示detailsFragment 这是我的布局xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height

我在这里看到了与此类似的问题,但无法找出我做错了什么:

我有一个listFragment和一个detailsFragment。当按下listFragment中的按钮时,我希望它显示detailsFragment

这是我的布局xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >

<FrameLayout
    android:id="@+id/listContainer"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

<FrameLayout
    android:id="@+id/detailsContainer"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:visibility="gone"/>
风景版效果很好,但肖像画一直在崩溃。正如我所说,我已经研究了很多类似的问题,但没有发现我做错了什么。 我还尝试过使用replace(R.id.detailsContainer,fragment)但没有成功


非常感谢

这一行似乎引起了问题:

fragment.setText(link)

因为您的片段尚未完成创建/绘制

尝试从
else
语句中删除提及的行,并将其添加到代码中:

... 
} else {
    DetailFragment fragment = new DetailFragment();
    Bundle bundle = new Bundle();
    bundle.putString("LINK", link);
    fragment.setArguments(bundle);
...
然后在片段的
onCreateView()
电话:


您需要发布崩溃的堆栈跟踪。
... 
} else {
    DetailFragment fragment = new DetailFragment();
    Bundle bundle = new Bundle();
    bundle.putString("LINK", link);
    fragment.setArguments(bundle);
...
 if (getArguments() != null) {
    setText(getArguments().getString("LINK"));
 }
Bundle bundle = new Bundle();
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
bundle.putString("key", link);
fragmentTransaction.replace(R.id.listContainer, fragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();