存储和读取共享首选项中的DatePicker值无效

时间:2017-05-12 19:44:46

标签: java android datepicker

我试图让用户选择日期。然后将此日期保存到共享预防,并用作下一个活动的倒数计时器的倒计时日期。我能够保存"名称"事件但不是日期,返回的值只是默认值。

存储日期:

rails webpacker:install

检索日期:

 SharedPreferences sharedPreferences = getPreferences(MODE_APPEND);
    SharedPreferences.Editor editor = sharedPreferences.edit();

    DatePicker datePicker = (DatePicker) findViewById(R.id.datePicker1);
    int day = datePicker.getDayOfMonth();
    int month = datePicker.getMonth() + 1;
    int year = datePicker.getYear();


    editor.putString("day", String.valueOf(day));
    editor.putInt("month", month);
    editor.putInt("day", year);
    editor.commit();
  • 从2017年5月1日开始,0-0-0的输出被选中。

我不确定这是否重要,但这两者是分开的。 谢谢

共享偏好设置:

       SharedPreferences prefs = this.getSharedPreferences(
            "com.example.app", Context.MODE_PRIVATE);
    SharedPreferences sharedPreferences = getPreferences(MODE_APPEND);
    SharedPreferences.Editor editor = sharedPreferences.edit();

    String dayEvent = prefs.getInt("day",0);
    int monthEvent = prefs.getInt("month",0);
    int yearEvent = prefs.getInt("year",0);

    String eventString = (dayEvent + "-" + monthEvent+ "-" + yearEvent);


    TextView testDate= (TextView) findViewById(R.id.testDate);
    testDate.setText(eventString);
    return eventString;

1 个答案:

答案 0 :(得分:0)

保存首选项时,您应该传递一个名称:

SharedPreferences prefs = getSharedPreferences("PREF_NAME", Context.MODE_PRIVATE);
// open editor and commit() or apply()

然后,要检索数据,您将获得完全相同的共享偏好。

您还可以使用您所有活动通用的getDefaultSharedPreferences

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);

编辑:

不使用默认共享首选项

保存

SharedPreferences prefs = getSharedPreferences("DATE_AND_STUFF", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("key", "value");
editor.apply();

提取

SharedPreferences prefs = getSharedPreferences("DATE_AND_STUFF", Context.MODE_PRIVATE);
String value = prefs.getString("key", "defaultValue");

使用默认共享首选项

保存

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(FirstActivity.this);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("key", "value");
editor.apply();

提取

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(SecondActivity.this);
String value = prefs.getString("key", "defaultValue");

希望它会有所帮助!