0

私のアプリには、3 つのフラグメントを含むビューページャーがあります。
フラグメントの 1 つで、別のアクティビティを開始しています。
ユーザーがバックアップ/アップ時に以前にいたのと同じビューページャーページに戻るようにします。

onPauseビューページャーとメソッドをホストするアクティビティを使用して、正常に実装しましたonResume。それは機能しましたが、問題は のonResumeonCreateに起動されていたため、アプリが同じページで開始されました (「デフォルト」ではなく、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...

この動作の原因は何ですか?

4

1 に答える 1