麻烦在两个活动之间使用sharedPreferences

时间:2012-01-31 19:40:33

标签: android sharedpreferences

我正在尝试在一个活动中保存日期,然后将该日期放在另一个活动的textView中。我不确定如何让这两个活动相互沟通。 在名为report.java的文件中,我有这个方法获取日期并将其保存在sharedPrefernces中。

private void updateLabel() {
    date.setText(fmtDate.format(dateAndTime.getTime()));
    SharedPreferences preferences = getPreferences(MODE_PRIVATE);
    SharedPreferences.Editor editor = preferences.edit();
    editor.putString("date", date.getText().toString()); // value to store
    editor.commit();
}

我试图找出如何获取我的文件名为inspect使用它来填充textView 我认为我遇到的问题是获取报告文件的正确名称。

public static final String PREF_FILE_NAME = "report";
   SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);

然后我在一个名为onResume()

的方法上有这个代码
    @Override
public void onResume() {
    super.onResume();
    SharedPreferences preferences = getPreferences(MODE_PRIVATE);
    String strDate=preferences.getString("date", date.getText().toString());

    date.setText(strDate);

}

2 个答案:

答案 0 :(得分:2)

您将值保存为两个单独的首选项文件。

SharedPreferences preferences = getPreferences(MODE_PRIVATE);

SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);

只使用一个。

答案 1 :(得分:1)

为什么不使用应用的所有类/活动都可以访问的默认首选项文件?

SharedPreferences preference = PreferenceManager.getDefaultSharedPreferences(yourContext);
preferences.edit().putString(YOURKEY, yourStrValue);

这样您就不会在应用中创建额外的首选项文件,您必须记住哪些值存储在哪些文件中。绝对让生活更轻松。