Android - 暂停时保存页面位置
Android - saving a position of a page when pausing
我有一个 ViewPager
可以保存当前页面位置(作为其适配器中的顺序)。当应用程序进入背景时,ViewPager 似乎失去了它上次所在的位置,当再次切换到应用程序时,它从位置 0 的片段开始。
如何保存当前位置并设置正确的片段?希望它只需要在一个地方而不是在每个片段中完成。
好的,所以它最终只是标准的东西。我刚刚覆盖了 OnPause
和 OnResume
。我在OnPause
方法中用SharedPreferences
保存了状态,在OnResume
方法中恢复了状态。
@Override
public void onPause()
{
super.onPause();
final SharedPreferences.Editor ed = getSharedPreferences("name",
android.content.Context.MODE_PRIVATE).edit();
ed.putInt(INDEX_KEY_STRING, viewPager.getCurrentItem());
ed.commit();
}
@Override
public void onResume()
{
super.onResume();
final SharedPreferences sp = getSharedPreferences("name",
android.content.Context.MODE_PRIVATE);
viewPager.setCurrentItem(sp.getInt(INDEX_KEY_STRING, 0));
}
我有一个 ViewPager
可以保存当前页面位置(作为其适配器中的顺序)。当应用程序进入背景时,ViewPager 似乎失去了它上次所在的位置,当再次切换到应用程序时,它从位置 0 的片段开始。
如何保存当前位置并设置正确的片段?希望它只需要在一个地方而不是在每个片段中完成。
好的,所以它最终只是标准的东西。我刚刚覆盖了 OnPause
和 OnResume
。我在OnPause
方法中用SharedPreferences
保存了状态,在OnResume
方法中恢复了状态。
@Override
public void onPause()
{
super.onPause();
final SharedPreferences.Editor ed = getSharedPreferences("name",
android.content.Context.MODE_PRIVATE).edit();
ed.putInt(INDEX_KEY_STRING, viewPager.getCurrentItem());
ed.commit();
}
@Override
public void onResume()
{
super.onResume();
final SharedPreferences sp = getSharedPreferences("name",
android.content.Context.MODE_PRIVATE);
viewPager.setCurrentItem(sp.getInt(INDEX_KEY_STRING, 0));
}