私のアプリには、3 つのフラグメントを含むビューページャーがあります。
フラグメントの 1 つで、別のアクティビティを開始しています。
ユーザーがバックアップ/アップ時に以前にいたのと同じビューページャーページに戻るようにします。
onPause
ビューページャーとメソッドをホストするアクティビティを使用して、正常に実装しました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
...
この動作の原因は何ですか?