0

これまでのところ、知識を深めるためにアプリに取り組んでいます。日付をクリックすると、ユーザーが予約できるカレンダーアプリを作成しました。次に、新しいアクティビティで作成されたすべての予定を開く削除ボタンがあります。そこには、すべての予定を表示するリストビュー、選択した予定 (削除するユーザーが選択したもの) を表示するテキストビュー、および削除ボタンがあります。このボタンを使用して、選択した予定 (行) をデータベースから削除します。これまでのところ、データベースに書き込んで情報を表示することはできましたが、必要な行を削除するようには見えません..

これは、リストビューから選択した予定(行)をテキストビューに取り込む方法です

//populate textview with selected item from sqlite data
    public void onListItemClick(ListView parent, View v, int position, long id) {
        selection.setText(stg1[position]);
        delBtn.setEnabled(true);
    }

これは、削除ボタンのアクションリスナーです。選択した行を削除するには、ここに何を配置する必要がありますか (私は多くの方法を試しましたが、アプリがクラッシュするだけです)

public void onClick(View v) {
    switch(v.getId()){

    case R.id.removeBtn:

        break;
    }

}

私が十分に明確であることを願っています..どんな助けでも大歓迎です

4

4 に答える 4

0

SQLiteテーブルまたはリストビューから行を削除するかどうかは明確ではありません。

リストビューから行を削除する場合は、配列からアイテムを削除してから、notifyDataSetChanged()

DELETESQLite DBから行を削除する場合は、クエリを作成する必要があります: http ://www.sqlite.org/lang_delete.html

于 2012-04-18T22:02:21.547 に答える
0

SQLiteDatabase クラスを使用していると仮定すると、いつでも次のようなことができます。

db = SQLiteDatabase.openDatabase("/data/data/yourpackage/databases/dbname.db", null, SQLiteDatabase.OPEN_READWRITE);
db.execSQL("delete from your_table where your_column = '" + some_value + "'");
db.close();

あなたのコードの範囲はわかりませんが、提供された内容に基づいて、そのチャンクを onClick() にドロップすると思います

次に、slayton が言ったように、notifyDatasetChanged() を使用してリストを更新します。そうしないと、データベースから削除されますが、リストにデータを入力したクエリを再起動するまで、それを知ることはできません。

また、現在選択されているリスト項目を示すグローバル変数を作成することもできます。そうすれば、onListItemClick() で設定してから、onClick で以前に選択したものに基づいてすばやく削除することができ、その switch-statement をいじる必要はありません。

于 2012-04-24T15:25:30.343 に答える
0

以下を使用できます。

db.delete("UsersTable", usernameString +"="+usernameString+ " AND " +this.userId+"="+userId)
于 2012-04-18T22:51:40.863 に答える