Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.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
Java 如何从一个活动调用fragmentactivity?_Java_Android_Android Fragments - Fatal编程技术网

Java 如何从一个活动调用fragmentactivity?

Java 如何从一个活动调用fragmentactivity?,java,android,android-fragments,Java,Android,Android Fragments,我试图利用这个意图从一个片段转到另一个活动。当我想在此活动中调用上一个片段活动时,应用程序会由于java.lang.IllegalStateException:在onSaveInstanceState之后无法执行此操作而崩溃。我想这是因为我将transaction.commit()应用到了导致崩溃的FragmentActivity。但是,如果我删除transaction.commit(),则该片段似乎不会出现在屏幕上。有什么好办法吗 public void onReturn(APIReturn

我试图利用这个意图从一个片段转到另一个活动。当我想在此活动中调用上一个
片段活动时,应用程序会由于
java.lang.IllegalStateException:在onSaveInstanceState之后无法执行此操作而崩溃。我想这是因为我将
transaction.commit()
应用到了导致崩溃的
FragmentActivity
。但是,如果我删除
transaction.commit()
,则该片段似乎不会出现在屏幕上。有什么好办法吗

public void onReturn(APIReturn result) {
    switch (result.state) {
        case ServerError:
            Toast.makeText(EditProfile.this, "Check your internet connection.", Toast.LENGTH_SHORT).show();
            break;

        case Success:
            Toast.makeText(EditProfile.this, "Success.", Toast.LENGTH_LONG).show();
            startActivity(new Intent(EditProfile.this, MainActivity.class));
            break;
    }
}
main活动
是我想从
EditProfile
调用的
FragmentActivity
。在
MainActivity
中,有一个
showFragment()
方法具有
commit()最后

public void showFragment(int position) {
    FragmentTransaction transaction = fm.beginTransaction();
    hideFragments(transaction);
    switch (position) {
        case 0:
            if (fg1 == null) {
                fg1 = new SpelersFragment();
                transaction.add(R.id.fl_content, fg1);
            } else {
                transaction.show(fg1);
            }
            break;

        case 1:
            if (fg2 == null) {

                fg2 = new WedstrijdenFragment();
                transaction.add(R.id.fl_content, fg2);
            } else {

                transaction.show(fg2);
            }
            break;

        case 2:
            if (fg3 == null) {

                fg3 = new ProfileFragment();
                transaction.add(R.id.fl_content, fg3);
            } else {

                transaction.show(fg3);
            }
            break;
    }
    transaction.commit();
}

您如何将结果传递回MainActivity?流是否与以下内容类似:MainActivity-->EditProfileActivity-->MainActivity?是。确切地在MainActivity的一个片段中,我调用了EditProfileActivity的意图。编辑完成后,我想返回MainActivity并显示默认片段。您是否尝试过commitAllowingStateLoss()?