Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.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 尝试替换片段时发生IlegalStateException_Android_Android Fragments - Fatal编程技术网

Android 尝试替换片段时发生IlegalStateException

Android 尝试替换片段时发生IlegalStateException,android,android-fragments,Android,Android Fragments,我想在手机未连接到WiFi网络时显示另一个片段。通常情况下,当没有可用的连接时,我会显示MainFragment ErrorFragment 我正在使用mWifi.isConnected()检查是否存在连接 @Override public void onViewCreated(View view, Bundle savedInstanceState) { if (mWifi.isConnected()) { new PostTask(1).execute();

我想在手机未连接到WiFi网络时显示另一个片段。通常情况下,当没有可用的连接时,我会显示MainFragment ErrorFragment

我正在使用
mWifi.isConnected()
检查是否存在连接

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    if (mWifi.isConnected()) {
        new PostTask(1).execute();
    } else {
        MainFragment.firstPageListener.onSwitchToNextFragment();
    }
}
这是我切换到ErrorFragment的代码(在MainFragment中),但是它给了我

11-23 20:57:29.588: E/AndroidRuntime(4025): java.lang.IllegalStateException: Recursive entry to executePendingTransactions
这是我的主要活动(我使用的是ViewPager):

我试图用以下方法更改片段:

FragmentManager fragmentManager2 = getFragmentManager();
FragmentTransaction fragmentTransaction2 = fragmentManager2.beginTransaction();
ErrorFragment fragment2 = new ErrorFragment();
fragmentTransaction2.addToBackStack("xyz");
fragmentTransaction2.hide(MainFragment.this);
fragmentTransaction2.add(android.R.id.content, fragment2);
fragmentTransaction2.commit();
但是当我滑动到另一个选项卡时,片段重叠了。。。该怎么办?谢谢

(拇指朝下是ErrorFragment,按钮和开/关开关在ListFragment中)

尝试删除 fragmentTransaction2.hide(MainFragment.this); 改变 fragmentTransaction2.add(android.R.id.content,fragment2); 到 fragmentTransaction2.replace(android.R.id.content,fragment2)

FragmentManager fragmentManager2 = getFragmentManager();
FragmentTransaction fragmentTransaction2 = fragmentManager2.beginTransaction();
ErrorFragment fragment2 = new ErrorFragment();
fragmentTransaction2.addToBackStack("xyz");
fragmentTransaction2.hide(MainFragment.this);
fragmentTransaction2.add(android.R.id.content, fragment2);
fragmentTransaction2.commit();