当前位置:  开发笔记 > 前端 > 正文

onActivityResult()片段事务错误

如何解决《onActivityResult()片段事务错误》经验,为你挑选了1个好方法。



1> Ravi..:

终于找到了解决方案,片段无法在onActivityResult()中交换或替换

我们需要将此代码放入Handler或放入OnResume()

方案:

private boolean change_fragment=false;

OnActivityResult()代码

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {

    change_fragment=true;
}

OnResume()代码

@Override
public void onResume() {
    super.onResume();
    if(change_fragment)
    {
        change_fragment=false;
        Fragment fragment = new VirtualListFragment();
        FragmentManager fragmentManager = getFragmentManager();
        fragmentManager.beginTransaction().replace(R.id.frame_container, fragment).commit();
    }
}


读者注意:您不应该在onResume()中提交片段事务.使用onResumeFragments()(对于FragmentActivity)或onPostResume()(对于Activity)方法,这将避免"java.lang.IllegalStateException:无法在onSaveInstanceState之后执行此操作"问题.致http://www.androiddesignpatterns.com/2013/08/fragment-transaction-commit-state-loss.html的致谢
推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有