Я беру вступительное слово в курсе программирования Android, в котором возникают некоторые проблемы, связанные с базой данных sqlite
Любые предложения, которые могут вызвать эту ошибку. Я думаю, что это связано с отсутствием правильного назначения переменной поля mDatabase.
Похоже, проблема заключается в том, что переменная mDatabase в функции addCustomer нуждается в другом контексте.
private static ContentValues getContentValues(Customer customer) {
ContentValues values = new ContentValues();
values.put(UUID, customer.getId().toString());
values.put(FULL_NAME, customer.getName());
values.put(ADDRESS, customer.getAddress());
values.put(CREDIT_CARD_NUMBER, customer.getCreditCardNumber());
values.put(EMAIL, customer.getEmail());
values.put(SESSIONS_REMAINING, customer.getSessionsRemaining());
values.put(PRINT_RECEIPT, customer.getPrintReceipt() ? 1 : 0);
values.put(EMAIL_RECEIPT, customer.getEmailReceipt() ? 1 : 0);
return values;
}
public void addCustomer(Customer c) {
ContentValues values = getContentValues(c);
mDatabase.insert(CustomerDbSchema.CustomerTable.NAME, null, values);
Log.d("DATABASE", "Customer Added");
}
Ссылки на файлы на Github ниже:
1) Я думаю, что вы не используете SQLiteDatabase mDatabase = getWritableDatabase();
должным образом. 2) Дополнительную информацию см. В ContentValues. 3) Используйте if
чтобы убедиться, что он вставлен.
if (mDatabase.insert(CustomerDbSchema.CustomerTable.NAME, null, contentValues) > 0) {
return true;
}
return false;