我剛剛開始使用android開發,而且我遇到了一些問題,我的教科書並未幫助我。爲什麼我的Android應用在行插入時崩潰?
這是我的插入函數: public long insertEntry(BudgetsItem item){ assert item.id == -1;
ContentValues newBudgetValues = new ContentValues();
newBudgetValues.put("name", item.name);
newBudgetValues.put("balance", item.balance);
item.id = db.insert(DATABASE_TABLE_NAME, null, newBudgetValues);
return item.id;
}
這是我的表定義:
private static final String TABLE_CREATE = "CREATE " + DATABASE_TABLE_NAME + "(\n" +
"id INTEGER PRIMARY KEY AUTOINCREMENT, \n" +
"name TEXT, \n" +
"balance DOUBLE);";
而這就是在調用適配器崩潰之前:
BudgetsAdapter adapter = new BudgetsAdapter(getBaseContext());
BudgetsItem newBudget = new BudgetsItem(budgetName, balance);
if(adapter.insertEntry(newBudget) != -1){
Toast.makeText(getApplicationContext(), "Budget Created!", Toast.LENGTH_SHORT);
finish();
}else{
Toast.makeText(getApplicationContext(), "Oops, something failed.", Toast.LENGTH_SHORT);
}
它崩潰的db.insert符合一個NullPointerException 。誰能告訴我爲什麼?
你說得對,調用adapter.open時分配db,我忘了調用它。 – Malfist 2010-11-22 03:58:38