Android 得到;java.lang.IllegalStateException:片段已处于活动状态”;布局不为空时

Android 得到;java.lang.IllegalStateException:片段已处于活动状态”;布局不为空时,android,android-fragments,Android,Android Fragments,我有3个片段的活动和寻呼机。我使用标签切换。 当我单击某个按钮时,我想用新按钮替换碎片0。 仅当fragment0的布局为空时,它才起作用。如果我在fragment0的布局中设置了一些内容(必须有listview),则会引发异常: java.lang.IllegalStateException: Fragment already active at android.support.v4.app.Fragment.setInitialSavedState(Fragment.java:503

我有3个片段的活动和寻呼机。我使用标签切换。 当我单击某个按钮时,我想用新按钮替换碎片0。 仅当fragment0的布局为空时,它才起作用。如果我在fragment0的布局中设置了一些内容(必须有listview),则会引发异常:

java.lang.IllegalStateException: Fragment already active
    at android.support.v4.app.Fragment.setInitialSavedState(Fragment.java:503)
    at android.support.v4.app.FragmentStatePagerAdapter.instantiateItem(FragmentStatePagerAdapter.java:110)
    at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:649)
我使用以下布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:orientation="vertical"
          android:id="@+id/all_exp_frag"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent">

<ListView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/all_expenses"/>

</LinearLayout>

可能我添加片段的方式不正确。

请使用fragment类的
#isAdded()
方法检查片段是否已添加。然后相应地替换或添加片段:

假设您的片段被称为
fragment

// Fragment object
Fragment fragment;

// Check to see if it's added or not like this
if (!fragment.isAdded()) {
    // Things you could do here:
    // -- Set argument
    // -- Begin a transaction 
    // -- etc...  
}

你有这个问题的解决方案吗?。请更新答案。