【问题标题】:How to read from SharedPreference file android如何从 SharedPreference 文件中读取 android
【发布时间】:2017-07-03 11:44:29
【问题描述】:

在我的 MainActivity 中,我编写了一些代码,我假设这些代码会创建一个文件并在该文件中保存一个值。

public static final String WHAT_I_WROTE = null;
 public void sendMessage(View view) {
    EditText editText = (EditText) findViewById(R.id.editText);
    String message = editText.getText().toString();

    //creates new SharedPreference?
    SharedPreferences saver = getSharedPreferences("saved_text", Context.MODE_PRIVATE);

    //writes to the preferences file called saved_text?
    SharedPreferences.Editor writer = saver.edit();
    writer.putString(WHAT_I_WROTE, message);
    writer.commit();
}

在另一个活动中,我希望能够阅读并显示消息,但是当我尝试这样做时,它无法解析符号“saver”。

String text_for_display = saver.getString(WHAT_I_WROTE);

我在这里犯了什么错误,如何纠正它以读取保存的字符串?

谢谢。

【问题讨论】:

  • 为什么在共享首选项中使用 null 作为键?
  • WHAT_I_WROTE 在这里为空。应改为有效字符串。
  • 请发布您从共享偏好中获取数据的其他活动的代码
  • 我不完全确定 null 是什么意思。我以为你在声明字符串时必须使用它作为占位符。

标签: android sharedpreferences saving-data


【解决方案1】:

在另一个活动中,您必须再次初始化共享首选项。

    SharedPreferences saver = getSharedPreferences("saved_text", Context.MODE_PRIVATE);
    String text_for_display = saver.getString(WHAT_I_WROTE),"any_default_value";

WHAT_WROTE = "任意文本"

【讨论】:

  • WHAT_I_WROTE 在这里为空。应改为有效字符串。
【解决方案2】:

将此添加到您拥有的其他活动中:

SharedPreferences saver = getSharedPreferences("saved_text", Context.MODE_PRIVATE);

然后这样读

String myValue = saver.getString("saved_text", "default_value");

【讨论】:

    【解决方案3】:

    优先设置值就像,

    SharedPreferences.Editor editor = getSharedPreferences("saved_text", MODE_PRIVATE).edit();
     editor.putString("WHAT_I_WROTE", message);
     editor.commit();
    

    检索数据,例如,

        SharedPreferences prefs = getSharedPreferences("saved_text", MODE_PRIVATE); 
    String text_for_display = prefs.getString("WHAT_I_WROTE", null);
    

    【讨论】:

    • 密钥和文件名相同会让人混淆吗?
    • 什么?我没找到你
    【解决方案4】:

    如有必要,不要忘记将“context”放在“getSharedPreferences”之前。

    【讨论】:

      猜你喜欢
      • 2021-06-01
      • 1970-01-01
      • 2018-12-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-10
      • 1970-01-01
      • 1970-01-01
      • 2011-11-25
      相关资源
      最近更新 更多