带有Viewpager的Android up按钮:返回之前选择的片段

时间:2015-08-06 12:05:30

标签: android android-fragments android-viewpager

我在导航和活动的向上按钮方面遇到了一些问题。我在一个活动中使用Viewpager实现了两个选项卡,然后在前一个活动中加载了另一个活动。当用户单击电话的后退按钮或活动的向上按钮时,我想返回先前选择的选项卡和第一个活动的片段。

到目前为止,我已经能够使用onSaveInstanceState和以下代码为后退按钮执行此操作:

@Override
protected void onSaveInstanceState(Bundle bundle) {
    super.onSaveInstanceState(bundle);
    bundle.putInt("currentPage", mViewPager.getCurrentItem());
}
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if(savedInstanceState != null) {
        int page = savedInstanceState.getInt("currentPage", 0);
        mViewPager.setCurrentItem(page);
        getSupportActionBar().setSelectedNavigationItem(page);
    }
}

为什么这对按钮不起作用?我该怎么办?

如果这是一个容易解决的问题,那么任何帮助都会受到赞赏和抱歉,但我对Android编程很新。

1 个答案:

答案 0 :(得分:1)

我终于在Returning from an activity using navigateUpFromSameTask()找到了解决方案。重新创建活动时,savedInstanceState为null。为避免这种情况,必须在Android清单中将活动的启动模式声明为singleTop。