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

Android ViewPager';活动恢复时,s的当前项始终设置为0,android,android-activity,Android,Android Activity,我有一个arrayList,它是viewpager适配器的输入。当我滑动viewpager并按下“上一步”按钮时,或者每当活动恢复时,其索引都会设置回0。在哪里可以保存查看寻呼机状态?或者有没有办法保存其状态?您需要在FragmentpagerAdapter中重写此方法 @Override public void destroyItem(ViewGroup container, int position, Object object) { // TODO

我有一个arrayList,它是viewpager适配器的输入。当我滑动viewpager并按下“上一步”按钮时,或者每当活动恢复时,其索引都会设置回0。在哪里可以保存查看寻呼机状态?或者有没有办法保存其状态?

您需要在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(视图组容器、int位置、对象);这条线

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

请尝试下面的代码 在活动中使用静态int

private static int lastSelectedPos =0;
在创建您的活动时

 @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);
}
    @Override
protected void onDestroy() {
    lastSelectedPos =viewPager.getCurrentItem();
    super.onDestroy();
}
覆盖活动的onDestroy

 @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);
}
    @Override
protected void onDestroy() {
    lastSelectedPos =viewPager.getCurrentItem();
    super.onDestroy();
}
试试这个:

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

希望能帮助你

您可以使用非ui片段保存查看页面的状态use SharedReferences?也可以使用应用程序类这是一种不正确的方法。这种方法有效,但您应该在恢复时使用
和暂停时使用
而不是在创建时使用
存储时使用。