コード:
final String nome = nm.getText().toString();
final String telefone = tlf.getText().toString();
if(nome.length() != 0 && telefone.length() != 0){
if(mIndex.equals("")) {
ContentValues valor = new ContentValues();
valor.put("nome", nome);
valor.put("telefone", telefone);
db.insert("contatos", null, valor);
ShowMessage("Sucesso","O Contato " + nome + " foi salvo com sucesso");
}
else {
String[] whereArgs = {"nome", "telefone"};
ContentValues dataToInsert = new ContentValues();
dataToInsert.put("nome", nome);
dataToInsert.put("telefone", telefone);
db.update("contatos", dataToInsert, "nome='"+nomeant+"' and telefone='"+foneant+"' ", whereArgs);
ShowMessage("Sucesso","O Contato " + nome + " foi editado com sucesso");
}
}
したがって、mIndex は前のアクティビティ (アイテム/連絡先を選択してクリックし、インデックスを新しいアクティビティに渡しました) の連絡先のインデックスです。 EditTexts には値があり、変更されると、Clicked Contacts の値 (名前/電話番号) が変更されます。しかし、SAVEボタンを押すとアプリがクラッシュしますが、エラーはdb.update
行にあります。
db.update("contatos", dataToInsert, "nome='"+nomeant+"' and telefone='"+foneant+"' ", whereArgs);
したがって、whereClauseまたはwhereArgsが間違っていると思いますが、Androidプログラミングの知能が高くないためです。