Как добавить много раз в таблицу sqlite и получить данные в списке? - PullRequest
0 голосов
/ 30 ноября 2018

У меня в приложении есть напоминание с тремя режимами просмотра текста, которые получают время из библиотеки.Когда пользователи выбирают каждый раз, я хочу добавить его в таблицу напоминаний в sqlite.

firstTime.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        status = "1";
        PersianCalendar persianCalendar = new PersianCalendar();
        persianCalendar.setTimeInMillis(System.currentTimeMillis());
        int hour = persianCalendar.get(PersianCalendar.HOUR_OF_DAY);

        int minute = persianCalendar.get(PersianCalendar.MINUTE);
        TimePickerDialog persianTime;
        persianTime = TimePickerDialog.newInstance(ReminderActivity.this, hour, minute, true);
        persianTime.setTitle("انتخاب زمان");
        persianTime.show(getFragmentManager(), "Timepickerdialog");

        persianTime.setOnCancelListener(new DialogInterface.OnCancelListener() {
            @Override
            public void onCancel(DialogInterface dialogInterface) {
                Log.d("TimePicker", "Dialog was cancelled");
            }
        });

        if (reminders.size() == 0) {

            r.setReminderTime(firstTime.getText().toString());
            db.addReminder(r);

            reminders.clear();
            reminders.addAll(db.getReminders());
        } else {
            db.editReminder(reminders.get(0).getId(), firstTime.getText().toString());
        }

    }
});

во второй и третий раз аналогично

if (reminders.size() == 1) {

    r.setReminderTime(secondTime.getText().toString());
    db.addReminder(r);

    reminders.clear();
    reminders.addAll(db.getReminders());

} else {
    db.editReminder(reminders.get(1).getId(), secondTime.getText().toString());
}

И это метод добавления в БД Activity

public boolean addReminder(Reminder reminder) {

    ContentValues cv = new ContentValues();
    cv.put(COL_TIME_REMINDER, reminder.getReminderTime());
    SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();
    Long isInserted = sqLiteDatabase.insert(REMINDER_TABLE_NAME, null, cv);
    Log.e(TAG, "insertReminder: " + isInserted);
    if (isInserted > 0) {
        return true;
    } else {
        return false;
    }
}

И получение данных

public ArrayList<Reminder> getReminders() {
    ArrayList<Reminder> reminders = new ArrayList<>();

    SQLiteDatabase sqLiteDatabase = this.getReadableDatabase();
    Cursor cursor = sqLiteDatabase.rawQuery("SELECT * FROM " + REMINDER_TABLE_NAME, null);
    Log.e(TAG, "getReminders: " + cursor.getCount());
    while (cursor.moveToNext()) {
        Reminder reminder = new Reminder();
        reminder.setId(cursor.getInt(0));
        reminder.setReminderTime(cursor.getString(1));
        reminders.add(reminder);
    }
    return reminders;
}

Я выбираю его три раза, но только один элемент добавляется в мою таблицу.Я не знаю, как правильно их добавить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...