在我的应用程序中有一个带有 3 个片段的 viewpager。
在其中一个片段中,我开始了另一项活动。
我希望用户回到他之前在备份/备份时所在的同一查看页面。
onPause
我使用托管 viewpager和onResume
方法的活动成功实现了它。它有效,但问题是onResume
在 之后被触发onCreate
,这导致应用程序从同一页面开始(而不是“默认”,我在onCreate
方法中设置的不同页面)。
然后我尝试将onResume
代码放在启动活动的onOptionsItemSelected
方法中,但这根本不起作用。
开展活动:
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Respond to the action bar's Up/Home button
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
vpPref = getPreferences(MODE_PRIVATE);
int value = vpPref.getInt("viewPagerPage", -1);
if (value != -1) {
MainActivity.instance.mPager.setCurrentItem(value);
vpPrefEditor = vpPref.edit();
vpPrefEditor.remove("viewPagerPage");
vpPrefEditor.commit();
}
return true;
}
return super.onOptionsItemSelected(item);
}
主要活动:(托管viewpager)
public void onPause() {
super.onPause();
vpPref = getPreferences(MODE_PRIVATE);
vpPrefEditor = vpPref.edit();
vpPrefEditor.putInt("viewPagerPage", mPager.getCurrentItem());
vpPrefEditor.commit();
}
问题出在第一个代码中。我不知道这是放置问题还是错误的实例MainActivity
是错误的...
这种行为的原因可能是什么?