0

私は 2 を持っていFragmentsます。1stは計算用、2ndは設定用です。

SharedPreference.Editor.commit()ononPause()メソッドを使用して設定を保存します。保存に関しては今のところ問題ありません。私が直面している問題は、のSharedPreference値を取得すること1st Fragmentです。ボタンを押すたびに値を取得しましたcount。初めて、取得している値は変更前のものです (これは私が直面している問題です) count。2 回目以降にボタンを取得/押すと、保存された値のみが取得されます。

そして、設定を変更しようとし、homeボタンを押して外部からアプリを終了し(onPauseメソッドをトリガーします)、設定を再度開くと、値が定義済みの設定に変更されました。onPauseしたがって、がトリガーされたときに設定が保存されたと確信しています。

ここで何がうまくいかないのだろうか。どんな助けでも大歓迎です。

要求に応じて、これは私の保存コードですSettingFragment:

@Override
public void onPause() {
        super.onPause();
        saveToPref();
    }

public void saveToPref() {
        SharedPreferences settings = getActivity().getSharedPreferences("mysettings", 0);
        Editor edit = settings.edit();
        edit.putString("begin", String.valueOf(ibegin)).putString("end", String.valueOf(iend)).commit();
    }
4

2 に答える 2

0

わかりました、問題が見つかりました。問題は、onPause()別のアクティビティを開始したときにのみトリガーされることです (のアクティビティを開始しましたonClick) Button count。myと onをsaveToPref()オーバーライドして をトリガーするようにコードを変更しました。onPageSelectedViewPagerbackPressedMainActivity

于 2012-09-26T03:21:24.593 に答える
0

SharedPreferencesオブジェクトを別の場所で初期化し、それを 1 回 (おそらくonCreate. 変更が表示されない理由はSharedPreferences、同じコンストラクターを使用して別のインスタンスがどこかで開かれており、これらの複数のインスタンスが自動的に解決/マージされないためです。その間に、 Editoreditインスタンスを とともに初期化しますsettings

于 2012-09-25T08:39:49.797 に答える