当活动恢复时,ViewPager的当前项始终设置为0

时间:2017-01-05 09:06:05

标签: android android-activity

我有一个arrayList,它是viewpager适配器的输入。当我滑动viewpager并按下后退按钮或每当活动恢复时,其索引将设置回0.我在哪里可以保存查看寻呼机状态?还是有任何解决方法来保存其状态?

3 个答案:

答案 0 :(得分:1)

您需要在FragmentpagerAdapter中重写此方法

@Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            // TODO Auto-generated method stub
            super.destroyItem(ViewGroup container, int position, Object object);
        }

然后你需要删除super.destroyItem(ViewGroup容器,int位置,Object对象);这一行

来自您的源代码..希望这对您有用,如果您觉得有帮助,请提出答案。

答案 1 :(得分:1)

请尝试下面的代码 在您的活动中使用static int

private static int lastSelectedPos =0;

你的活动的onCreate

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.layout);

    // on your view pager instance set previos selected index
    viewPager.setCurrentItem(lastSelectedPos);
}

覆盖您的活动的onDestroy

    @Override
protected void onDestroy() {
    lastSelectedPos =viewPager.getCurrentItem();
    super.onDestroy();
}

答案 2 :(得分:1)

试试这个:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.layout);
    SharedPreferences prefs = getSharedPreferences("myPrefs", MODE_PRIVATE);
    int lastPos = prefs.getInt("lastPos", 0);
    viewPager.setCurrentItem(lastPos);
}

@Override
protected void onDestroy() {
    SharedPreferences prefs = getSharedPreferences("myPrefs", MODE_PRIVATE);
    SharedPreferences.Editor editor = prefs.edit();
    editor.putInt("lastPos", viewPager.getCurrentItem());
    editor.commit();
    super.onDestroy();
}
希望能帮到你!