从 applandeo 库将数据从 sqlite 保存并加载到日历视图



我正在使用applandeo库中的Calendarview。我以某种方式拥有它,即我在日历视图中选择几天,我想将其存储在 SQLite 数据库中并稍后加载。这是我尝试从日历视图中选择几天的方式:

private List<Calendar> getSelectedDays() {
List<Calendar> calendars = new ArrayList<>();
for (int i = 0; i < 10; i++) {
Calendar calendar = DateUtils.getCalendar();
calendar.add(Calendar.DAY_OF_MONTH, i);
calendars.add(calendar);
}
return calendars;
}

这样,它将设置在当前日期之后的 10 天。

这是我尝试在日历视图上显示事件的方式:

Calendar calendar1 = Calendar.getInstance();
calendar1.add(Calendar.DAY_OF_MONTH, 10);
events.add(new EventDay(calendar1, R.drawable.sample_icon_2));

如何将所选日期存储到 sqlite 数据库中,然后加载它?

由此,我可以选择日、月和年并将其存储到数据库中: for (日历日历 : calendarView.getSelectedDates((( { System.out.println(calendar.getTime((.toString(((;

dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
monthOfYear = calendar.get(Calendar.MONTH);
year = calendar.get(Calendar.YEAR);
dbManager.insertWORKING(dayOfMonth,monthOfYear,year);
System.out.println("DATES: "+dayOfMonth+"/"+monthOfYear+"/"+year);
}

但是我不知道如何加载它。

您可以向 dbManager 类添加一个方法来查询数据库。

这种方法将遵循以下路线:

public Cursor retrieveAllWorkings() {
SQliteDatabase db = this.getWritableDatabase();
return db.query(your_tableName,null,null,null,null,null,null);
}
  • 显然your_tableName应该替换为实际的表名。

  • 以上会将表中的所有行提取到游标

  • 由于第二个参数为 null,因此表的所有列都将提取到游标中。

然后,使用适当的get????方法在游标中循环(使用(从相应的列中检索数据。为了提高灵活性并减少出错的可能性,最好不要对列偏移量进行硬编码,而是使用 CursorgetColumnIndex方法从列名中检索列的偏移量。

请注意,完成游标后应始终将其关闭

举个例子:-

while(the_cursor.moveToNext) {
String my_extracted_data = the_cursor.getString(the_cursor.getColumnIndex(the_column_name));
//........ do something with my_extracted_data as it will be overwritten by the next iteration (row in the Cursor)
}

最新更新