データベース接続を必要とする Android アプリを作成しています。そのために、組み込みの SQLiteDatabase クラスを使用しています。私のデータベースは、次のステートメントを使用して作成されました:-
SQLiteDatabase db;
db = openOrCreateDatabase("ContactsMain",SQLiteDatabase.CREATE_IF_NECESSARY,null);
db.execSQL("Create Table Contacts (name Text, phno Text PRIMARY KEY, important Integer)");
「重要」には、連絡先が重要かどうかに基づいて、0 または 1 のいずれかの値があります。この値を更新するために、次のコードを使用しています。
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
c.moveToPosition(position);
String ph = c.getString(c.getColumnIndex("phno"));
ContentValues val = new ContentValues();
val.put("important",1);
String query = "update Contacts set important = 1 where phno=" + ph + ";";
db.update("Contacts", val, query, null);
c.close();
db.close();
}
db と c は次のように初期化されています。
SQLiteDatabase db = openOrCreateDatabase("ContactsMain",SQLiteDatabase.CREATE_IF_NECESSARY,null);
Cursor c = db.rawQuery("SELECT * FROM Contacts",null);
問題は、リスト内の項目をクリックすると、選択した連絡先だけでなく、すべての連絡先の「重要」の値が 1 に設定されることです。誰かがここで私を助けてくれますか?