Сохранение и загрузка данных из sqlite в представление календаря из библиотеки Applandeo

Я использую Calendarview из библиотеки applandeo. У меня это так, что я выбираю несколько дней в представлении календаря, и я хочу сохранить его в базе данных 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 (Calendar calendar: 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);
    }

Но тогда я не знаю, как его загрузить.


person Jose Borges    schedule 19.12.2019    source источник


Ответы (1)


Вы должны добавить метод в класс dbManager для запросить базу данных.

Такой метод был бы в духе

public Cursor retrieveAllWorkings() {
    SQliteDatabase db = this.getWritableDatabase();
    return db.query(your_tableName,null,null,null,null,null,null);
}

Затем вы выполняете цикл (перемещение с помощью ) по курсору с помощью соответствующих методов get???? для извлечения данных из соответствующих столбцов. Для гибкости и снижения вероятности ошибок рекомендуется не жестко кодировать смещения столбцов, а вместо этого использовать метод Cursor getColumnIndex для извлечения смещения столбца из имени столбца.

Примечание, вы всегда должны закройте курсор, когда закончите с ним.

В качестве примера :-

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)
}
person MikeT    schedule 19.12.2019