Je ne fais que commencer le développement Android, et j'ai rencontré des problèmes avec lesquels mon manuel ne m'aide pas.Pourquoi mon application Android plante-t-elle sur l'insertion de ligne?
Ceci est ma fonction d'insertion: public long insertEntry (élément BudgetsItem) { 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;
}
C'est ma définition de la table:
private static final String TABLE_CREATE = "CREATE " + DATABASE_TABLE_NAME + "(\n" +
"id INTEGER PRIMARY KEY AUTOINCREMENT, \n" +
"name TEXT, \n" +
"balance DOUBLE);";
Et voici ce qui appelle l'adaptateur avant qu'il ne tombe en panne:
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);
}
Il tombe en panne sur la ligne de db.insert avec un NullPointerException . Quelqu'un peut-il me dire pourquoi?
Vous avez raison, DB est assigné lorsque adaptateur.open est appelé, et j'ai oublié de l'appeler. – Malfist