У вас проблема не в том, что база данных удаляется или очищается;это потому, что вставка не будет вставлять какие-либо данные, поскольку вы пытаетесь вставить, используя столбец FullDescription (согласно values.put(COLUMN_TASK_FULL, task.GetFullDescription());
). Однако этот столбец не существует в таблице (в соответствии с указанным вами таблицей создания SQL).
Необходимо либо закомментировать, либо удалить строку values.put(COLUMN_TASK_FULL, task.GetFullDescription());
или, если вам нужен столбец, измените
String script = "CREATE TABLE " + TABLE_TASK + "("
+ COLUMN_TASK_ID + " INTEGER PRIMARY KEY,"
+ COLUMN_TASK_SHORT + " TEXT,"
+ COLUMN_TASK_CREATIONDATE + " TEXT,"
+ COLUMN_TASK_COMPLETIONDATE + " TEXT,"
+ COLUMN_TASK_PRIORITY + " TEXT,"
+ COLUMN_TASK_SHOWN + " TEXT" + ")";
на
String script = "CREATE TABLE " + TABLE_TASK + "("
+ COLUMN_TASK_ID + " INTEGER PRIMARY KEY,"
+ COLUMN_TASK_SHORT + " TEXT,"
+ COLUMN_TASK_FULL + " TEXT,"
+ COLUMN_TASK_CREATIONDATE + " TEXT,"
+ COLUMN_TASK_COMPLETIONDATE + " TEXT,"
+ COLUMN_TASK_PRIORITY + " TEXT,"
+ COLUMN_TASK_SHOWN + " TEXT" + ")";
Если вы измените определение таблицы, добавив столбец, вам потребуется перезапустить приложение, но только после один из следующих действий: -
- Удалить данные приложения
- Удалить приложение
- Изменить
private static final int DATABASE_VERSION = 1;
на private static final int DATABASE_VERSION = 2;
Это происходит потому, что метод onCreate запускается только один раз при создании базы данных 1 и 2 deleteбаза данных , 3 вызывает метод onCreate с помощью метода onUpgrade