Android Sqlite вставить нулевую ссылку на объект

-3

Я беру вступительное слово в курсе программирования 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 ниже:

CustomerDataBase.java

CustomerCursorWrapper.java

CustomerDBSchema.java

Customer.java

AddCustomerActivity.java

  • 1
    опубликовать ошибки журнала
  • 0
    java.lang.NullPointerException: попытка вызвать виртуальный метод long android.database.sqlite.SQLiteDatabase.insert (java.lang.String, java.lang.String, android.content.ContentValues) 'для ссылки на пустой объект
Теги:
insert

1 ответ

0

1) Я думаю, что вы не используете SQLiteDatabase mDatabase = getWritableDatabase(); должным образом. 2) Дополнительную информацию см. В ContentValues. 3) Используйте if чтобы убедиться, что он вставлен.

    if (mDatabase.insert(CustomerDbSchema.CustomerTable.NAME, null, contentValues) > 0) {
        return true;
    }
    return false;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню