![](/img/trans.png)
[英]How to return back to a fragment in viewpager from an Activity's fragment
[英]Return to a activity's fragment
我有一个活动(MainActivity),它具有一个导航抽屉,并且可以显示2个片段(片段A和B),一次显示一个。 (此活动是android studio创建的带有导航抽屉的默认活动)
当我在抽屉上选择片段B时,操作栏菜单将更新为显示特定于片段B的按钮(按钮P)。
按钮P以明确的意图打开一个独立的活动(IndependentActivity),对此活动我执行数据库操作,完成此活动后,请返回MainActivity。
问题是:完成IndependentActivity后,将显示MainActivity, 但它显示的是片段A而不是片段B,后者是调用意图转到IndependentActivity的片段。
如何通过显示引发该动作进行另一个活动的片段来解决此问题? 有什么方法可以保存出现的片段?
基本上,您要做的是:
一个简单的实现可以是:
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
// Save which fragment that is in the view when entering another activity
savedInstanceState.putString("fragment", "fragmentB");
super.onSaveInstanceState(savedInstanceState);
}
片段B可以用一个字符串替换,该字符串告诉应用程序当前片段。
回到活动之后,您要:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if( savedInstanceState != null ) {
// Get which fragment that was active when you left the activity
savedInstanceState.getString("fragment");
// Programatically select the fragment here
}
}
您可以在此处阅读有关保存实例状态的更多信息:
http://developer.android.com/training/basics/activity-lifecycle/recreating.html
我将留给您以编程方式选择片段。 希望对您有所帮助!
我发现我遇到了与此相同的问题: https : //stackoverflow.com/a/29464116/2325672
返回的后退箭头不起作用,因此重置了活动的片段,并且模拟器的后三角效果很好。
将此代码添加到IndependentActivity可以为我工作:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId()== android.R.id.home) {
Intent intent = NavUtils.getParentActivityIntent(this);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
NavUtils.navigateUpTo(this, intent);
return true;
}
return super.onOptionsItemSelected(item);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.