Android Viewpager更新和回退

Android Viewpager更新和回退,android,android-fragments,android-viewpager,Android,Android Fragments,Android Viewpager,我的应用程序中有一个带有2个滚动页面的查看寻呼机。首先,我用两个片段填充它 在第一个片段中,我有一个按钮。单击按钮创建新适配器,并用两个不同的片段填充视图寻呼机。当我按下back键时,我退出应用程序,而不是恢复浏览页面的先前状态。请帮忙 第一次: 第二次: 一种解决方案可以是实施OnBackpress: @Override public void onBackPressed() { if (mViewpager != null && mViewpager.getAdapt

我的应用程序中有一个带有2个滚动页面的查看寻呼机。首先,我用两个片段填充它

在第一个片段中,我有一个按钮。单击按钮创建新适配器,并用两个不同的片段填充视图寻呼机。当我按下back键时,我退出应用程序,而不是恢复浏览页面的先前状态。请帮忙

第一次:

第二次:


一种解决方案可以是实施OnBackpress:

@Override public void onBackPressed() {
    if (mViewpager != null && mViewpager.getAdapter() instanceof DetailPagerAdapter) {
        ViewPagerAdapter pagerAdapter =  new ViewPagerAdapter(getSupportFragmentManager(),nBank);
        mViewpager.invalidate();
        mViewpager.setAdapter(pagerAdapter);
    } else {
        super.onBackPressed();  
    }
}
不过,我认为最好在调用onListTempressed时使用DetailPagerAdapter启动一个新活动。通过这种方式,android的默认行为是在backpress上导航回您的主要活动,目前您的主要活动可能会承担太多的责任。因此,拥有一个处理细节部分的自包含活动也更容易维护,因为它可能需要不同的选项卡、actionbar菜单项等


也可能是一个包含详细信息查看页面的片段,但我自己在实现它时遇到了问题。但这应该是可能的,我的麻烦可能是由我使用的一些库引起的

我考虑过新的活动,但问题有点复杂。我在我的单个活动中使用了操作栏导航抽屉和查看寻呼机,所以使用第二个活动可能会导致一些问题。是的,好的,那么现在就坚持这个。但如果活动代码在某个时候变得拥挤,也许可以尝试将DetailPagerAdapter嵌入到它自己的片段中。
public void onListItemPressed(Currency objectCurrency) {
        // TODO Auto-generated method stub

        DetailPagerAdapter detaluriadapteri = new DetailPagerAdapter(getSupportFragmentManager());
        mViewpager.setAdapter(detaluriadapteri);

    }
@Override public void onBackPressed() {
    if (mViewpager != null && mViewpager.getAdapter() instanceof DetailPagerAdapter) {
        ViewPagerAdapter pagerAdapter =  new ViewPagerAdapter(getSupportFragmentManager(),nBank);
        mViewpager.invalidate();
        mViewpager.setAdapter(pagerAdapter);
    } else {
        super.onBackPressed();  
    }
}