【问题标题】:Why is my value saved to SharedPreferences in onPause() not restored in onResume()?为什么我在 onPause() 中保存到 SharedPreferences 的值没有在 onResume() 中恢复?
【发布时间】:2012-01-15 13:50:27
【问题描述】:

我有以下代码:

    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”中输入一个值时,移动到下一个活动,然后返回(在模拟器中),passPhraseExample EditText 是空的。它不应该有我输入的值,保存,然后“恢复”吗?

【问题讨论】:

    标签: android android-emulator android-widget android-preferences


    【解决方案1】:

    您没有提交更改。
    将字符串写入onPause() 后调用editor.commit()。否则不会保存您的更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-25
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 2017-11-09
      相关资源
      最近更新 更多