Android Sqlite插入null对象引用

时间:2018-04-16 16:59:03

标签: android sqlite insert

我正在介绍一下Android编程课程的介绍,并将其添加到sqlite数据库中

任何可能导致此错误的建议。我认为这与没有正确分配mDatabase字段变量有关。

似乎问题是addCustomer函数中的mDatabase变量需要不同的上下文。

  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 :(得分:0)

1)我认为您没有正确使用SQLiteDatabase mDatabase = getWritableDatabase();。 2)有关详细信息,请参阅ContentValues。 3)使用if确保已插入。

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