【发布时间】:2016-07-31 05:18:56
【问题描述】:
我有一个用于存储日历事件/日期信息的代码。我希望能够调用多个日期/事件,但到目前为止我只能存储一个或它会覆盖。 Stored____ 是我从 CalendarView 中获得的每一天、一个月、一年等的名称。 onSelectedDayChange 检查是否存在与手机上选择的日期相符的日期,并将所有信息输出到 Snackbar 中。我的代码如下:
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("savedevent",EventView.getText().toString());
editor.putInt("savedyear", storedyear);
editor.putInt("savedmonth", storedmonth);
editor.putInt("savedday", storedday);
editor.putInt("savedhour", storedhour);
editor.putInt("savedminute", storedminute);
editor.commit();
editor.apply();
finish();
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
CalendarView calendarView=(CalendarView) findViewById(R.id.calendar);
calendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
@Override
public void onSelectedDayChange(CalendarView view, int year, int month,
int dayOfMonth) {
if (year == prefs.getInt("savedyear",0) && month == prefs.getInt("savedmonth",0) && dayOfMonth == prefs.getInt("savedday",0)){
Snackbar snackbar = Snackbar.make(findViewById(R.id.LinearLayout), "Event: " + prefs.getString("savedevent",null) + " Date: " + (prefs.getInt("savedmonth", 0) + 1) + "/" + prefs.getInt("savedday", 0) + "/" + prefs.getInt("savedyear", 0) + " Time: " + prefs.getInt("savedhour", 0) + ":" + prefs.getInt("savedminute", 0), Snackbar.LENGTH_LONG);
snackbar.show();
}
}
});
有人可以帮我解释一下我如何能够存储多个事件,以便在单击日期时,所有事件都能够显示并且不会相互覆盖吗? 谢谢!
【问题讨论】:
标签: java android arrays android-studio sharedpreferences