Android 得到;java.lang.IllegalStateException:片段已处于活动状态”;布局不为空时
我有3个片段的活动和寻呼机。我使用标签切换。 当我单击某个按钮时,我想用新按钮替换碎片0。 仅当fragment0的布局为空时,它才起作用。如果我在fragment0的布局中设置了一些内容(必须有listview),则会引发异常: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
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...
}
你有这个问题的解决方案吗?。请更新答案。