【发布时间】:2016-09-14 04:43:55
【问题描述】:
我已经搜索了有关如何在 viewPager 中替换片段的其他答案,但无济于事。
设置正常,我有2个片段。
[片段1][片段2]
在操作栏中,我有一个搜索按钮,它以覆盖模式(Google 搜索)启动一个新 Intent,然后在 onActivityResult 中我想用新片段替换当前片段。
我已经完成了 SearchFragment,如果我将它作为第三个片段添加到选项卡中,它就可以工作。但是我只想用新的搜索片段替换 Fragment2。
我有一个sectionPagerAdapter 类,它可以提供帮助。
因此,当我单击操作栏中的 searchButton 时,我会在 onActivityResult() 中触发此代码
SearchFragment searchFragment = new SearchFragment();
FragmentManager fm = getSupportFragmentManager();
fm.beginTransaction().replace(R.id.container, searchFragment)
.addToBackStack(null)
.commit();
但是应用程序因错误而崩溃:
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { (has extras) }} to activity {com.example.app/com.example.MainActivityTabs}: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at com.example.MainActivityTabs.onActivityResult(MainActivityTabs.java:168)
168 是 .commit();
如果我在按下按钮时触发了片段事务,它至少不会崩溃,但它会清除寻呼机中的两个片段。所以我认为有两个问题。
谢谢
【问题讨论】:
-
同时添加您的视图寻呼机和适配器代码
-
发布您的完整代码
-
在
onactivityResult()中使用一些视图或处理程序来发布一个可运行文件,并在该可运行文件中执行该任务。喜欢:new Handler().post(new Runnable(){});