I’m just getting started with android development, and I’ve ran into some problems my textbook isn’t helping me with.
This is my insert function:
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;
}
This is my table definition:
private static final String TABLE_CREATE = "CREATE " + DATABASE_TABLE_NAME + "(\n" +
"id INTEGER PRIMARY KEY AUTOINCREMENT, \n" +
"name TEXT, \n" +
"balance DOUBLE);";
And this is what is calling the adapter before it crashes:
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);
}
It crashes on the db.insert line with a NullPointerException. Can anyone tell me why?
Your not giving us any information on you db object (I guess represents your database.
since you said it crashes on db insert I would have to guess that db is not initialized at the moment your doing an insert.
I would suggest
1) adding a if(db != null)
if the last line in your crash log is effectively on the db.insert.
if there are more lines please add your stack to your post so we can help