2

私は現在、Androidデータベースで値の追加、表示、削除に取り組んでいますが、残念ながら、私が持っている本は追加と表示の部分しかカバーしていないので、助けを求めてここに来ました。

DeleteEntryというクラスがあります。このクラスは変数moduleDeleteを入力し、クラスDeleteEntryViewModuleに渡されます。次に、このクラスはこの値を使用して、このshowEvent()メソッドを使用してその行のすべての値を返します。

private void showEvents(Cursor cursor) {
StringBuilder builder = new StringBuilder("Saved Events:\n");
while (cursor.moveToNext()){
    long id = cursor.getLong(0);
    String module = cursor.getString(1);
    String day = cursor.getString(2);
    String starttime = cursor.getString(3);
    String duration = cursor.getString(4);
    String typeofsession = cursor.getString(5);
    String room = cursor.getString(6);
    builder.append(id).append(": ");
    builder.append(module).append(": ");
    builder.append(day).append(": ");
    builder.append(starttime).append(": ");
    builder.append(duration).append(": ");
    builder.append(typeofsession).append(": ");
    builder.append(room).append("\n ");
}
TextView text = (TextView) findViewById(R.id.text);
text.setText(builder);
}

このコードを実行できるように、ビルダーから値を取得して変数に配置するにはどうすればよいですか。

private void removeEvent (String module, String day, String starttime, String duration, String typeofsession, String room){
    try{
    SQLiteDatabase db = events.getWritableDatabase();
    ContentValues values = new ContentValues ();
    values.put(DAY, day);
    values.put(MODULE, module);
    values.put(STARTTIME, starttime);
    values.put(DURATION, duration);
    values.put(TYPEOFSESSION, typeofsession);
    values.put(ROOM, room);
    db.replaceOrThrow(TABLE_NAME, null, values);
    }catch(SQLiteException ex){
        Toast toast = Toast.makeText(this, "Broken", 10);
        toast.show();
    }   

}

ありがとう

4

1 に答える 1

0

db.replaceOrThrowの代わりに以下のコードを使用してみてください

return db.delete(TABLE_NAME, MODULE + "="
            + module, null) > 0;

db.replaceOrThrowを使用している理由を説明できますか?

于 2012-04-20T14:35:24.500 に答える