Viewpager更新和Backstack

时间:2014-02-25 11:12:58

标签: android android-fragments android-viewpager

我的应用中有一个带有2个滚动页面的视图寻呼机。起初我用两个片段填充它。

在第一个片段中,我有一个按钮。单击按钮创建新适配器,并使用两个不同的片段填充视图寻呼机。在我按下的那一刻,我从应用程序退出,而不想恢复视图寻呼机的先前状态。请帮忙

第一次:

ViewPagerAdapter pagerAdapter =  new ViewPagerAdapter(getSupportFragmentManager(),nBank);
                    mViewpager.invalidate();
                    mViewpager.setAdapter(pagerAdapter);

第二次:

public void onListItemPressed(Currency objectCurrency) {
        // TODO Auto-generated method stub

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

    }

1 个答案:

答案 0 :(得分:0)

一种解决方案可能是实现onBackPressed:

@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();  
    }
}

尽管如此,我认为在调用onListItemPressed时使用DetailPagerAdapter开始一个新活动会更好。这样android的默认行为就是导航回到你在backpress上的主要活动,目前你的主要活动可能会承担太多的责任。因此,处理细节部分的自包含活动也会更容易维护,因为它可能需要不同的选项卡,操作栏菜单项等。

也可能是一个包含详细信息viewpager的Fragment,但我自己实现了这个问题。应该是可能的,我的麻烦可能是由我使用的一些库引起的。