Почему мое значение, сохраненное в SharedPreferences в onPause (), не восстанавливается в onResume ()? - PullRequest
0 голосов
/ 08 декабря 2011

У меня есть следующий код:

    SharedPreferences KITPrefs;
    EditText passPhraseExample;

...

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        passPhraseExample = (EditText) findViewById(R.id.editTextPassPhraseExample);
        KITPrefs = getPreferences(Activity.MODE_PRIVATE);

    @Override
    public void onResume() {
        super.onResume();
        passPhraseExample.setText(KITPrefs.getString("passPhraseExample", ""));
    }

    @Override
    public void onPause() {
        super.onPause();
        SharedPreferences.Editor editor = KITPrefs.edit();
        editor.putString("passPhraseExample", passPhraseExample.getText()
                .toString());
    }

.. тем не менее, когда я ввожу значение в «passPhraseExample», перехожу к следующему действию, а затем возвращаюсь (в эмуляторе), passThraseExample EditText становится пустым. Разве это не должно иметь значение, которое я ввел в него, сохранил, а затем "восстановил"?

1 Ответ

3 голосов
/ 08 декабря 2011

Вы не фиксируете свои изменения.
Вызовите editor.commit() после записи строки в onPause(). В противном случае ваши изменения не сохраняются.

...