3

私の名前はマイケルです。非常に基本的なクラススケジュールアプリとして機能するAndroidアプリケーションを作成しています。これまでのところ、新しいクラスを作成してデータベースに追加できるようにプログラムを作成することはできましたが、選択したエントリをデータベースから削除する方法がわからないようです。エントリを保存するボタンは次のように定義されています。

<Button
        android:id="@+id/save"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Save" />

そしてそれがアクティブにするリスナーは次のとおりです。

private View.OnClickListener onSave=new View.OnClickListener() {
        public void onClick(View v) {
            String type=null;

            switch (types.getCheckedRadioButtonId()) {
                case R.id.math:
                    type="math";
                    break;
                case R.id.cs:
                    type="cs";
                    break;
                case R.id.pe:
                    type="pe";
                    break;
                case R.id.elective:
                    type="elective";
                    break;
            }

            if (restaurantId==null) {
                helper.insert(name.getText().toString(),
                                            address.getText().toString(), type,
                                            notes.getText().toString());
            }
            else {
                helper.update(restaurantId, name.getText().toString(),
                                            address.getText().toString(), type,
                                            notes.getText().toString());
            }

            finish();
        }
    };

'insert()'メソッドは、エントリを追加するヘル​​パークラスの関数です。

特定の問題は、ヘルパークラスで「remove()」関数を記述できないことです。getWritableDatabase.delete()関数を使用しようとしましたが、適切なパラメーターを見つけるのに問題があります。正しい方向へのポイントは私にとって大きな助けになるでしょう。前もって感謝します。

それがまったく役立つ場合、これはinsert()関数です。

public void insert(String name, String address,
            String type, String notes) {
        ContentValues cv=new ContentValues();

        cv.put("name", name);
        cv.put("address", address);
        cv.put("type", type);
        cv.put("notes", notes);

        getWritableDatabase().insert("restaurants", "name", cv);
    }
4

1 に答える 1

3

このようなことに興味がありますか?

public void deleteValue(String value)
    {
         SQLiteDatabase db = getWritableDatabase();

         String whereClause = "name"+"=?";
         String[]whereArgs = new String[] {String.valueOf(value)};
          db.delete(TABLE_NAME, whereClause, whereArgs);
          db.close();
          Log.v("done","deleted  row ");
    }

ここで、deleteValue()のパラメーター値は、行を削除する基準となる値であるため(名前に基づいて行を削除するなど)、where句として使用します。

行を参照してください

String whereClause = "name"+"=?";
             String[]whereArgs = new String[] {String.valueOf(value)};

これは、where句が次のようなdeleteステートメントと見なすことができます。where name = value;

于 2012-10-25T16:31:19.117 に答える