我刚刚开始使用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