0

問題について助けが必要です...

データベースに接続するカーソル付きアダプターを使用してリストビューを作成し、テーブルに保存したすべてのリストを表示します。後で、目的の行にlongckickで表示されるコンテキストメニューを作成しました

コンテキスト位置

         id = getListAdapter().getItemId(info.position);

これは、databaseHelperでの私のメソッドdeleteです。

void deleteReg(SQLiteDatabase db)
    {

        db.delete(TabellaRegistry.TABLE_NAME,null, null);
    }

選択した行を削除するためのアクティビティでそれを使用します。

   final SQLiteDatabase db = databaseHelper.getWritableDatabase();
                                databaseHelper.deleteReg(db,null, null, null, null, null, null);

しかしそうすることで...私は私のテーブルのすべてを削除します...

コンテキストメニューから選択した行だけを削除するにはどうすればよいですか?

事前に感謝します

4

3 に答える 3

3

この行の2番目の引数としてNULLを渡すことにより、次のようになります。

db.delete(TabellaRegistry.TABLE_NAME,null, null);

常にテーブル全体を削除します。Androidのドキュメントに記載されているように、パラメータは次のとおりです。

public int delete(String table、String whereClause、String [] whereArgs)

table-削除するテーブル

whereClause-削除時に適用するオプションのWHERE句。nullを渡すと、すべての行が削除されます。

したがって、BOOK_IDが6である行を削除したいとします。次のようになります。

public boolean deleteTitle(String id) 
{
    return db.delete(DATABASE_TABLE, BOOK_ID + "=" + id, null) > 0;
}

SQLiteクラスの概要:http ://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html

于 2012-04-17T21:01:40.390 に答える
1

特定の行を削除するには、deleteステートメントにwhere句を配置する必要がありますdelete

于 2012-04-17T20:13:32.837 に答える
1

このメソッドのAPIドキュメントを確認すると、自分で答えを得ることができます。

public int delete (String table, String whereClause, String[] whereArgs)

Parameters

table   the table to delete from
whereClause the optional WHERE clause to apply when deleting. Passing null will delete all rows.

すべてのレコードを削除する原因となるwhere句にnullを渡します。

于 2012-04-17T20:18:57.350 に答える