0

データベースから行を削除しようとしています。私はこの方法を使用しています:

public void deletePlayerbyID(int id){mDb.delete(SQLITE_TABLE, KEY_ROWID +"="+id, null); }

アクティビティで呼び出されます:

listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
      @Override
      public boolean onItemLongClick(AdapterView<?> av, View v, int pos, long id) {
              return onLongListItemClick(v,pos,id);
      }
      protected boolean onLongListItemClick(View v, final int pos, long id) {

              AlertDialog.Builder builder = new  AlertDialog.Builder(AndroidListViewCursorAdaptorActivity.this);
                  builder.setMessage("Are you sure to delete?").setCancelable(false).setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                             public void onClick(DialogInterface dialog, int id) {bdHelper.open();
                                 dbHelper.deletePlayerbyID(pos);
                                 Log.i("ListView", "onLongListItemClick id=" + pos);
                                 displayListView();
                             }
                         })

選択した行を listView から削除できないのはなぜですか? すべてのデータベースを削除するメソッドがあり、それが機能します。

4

3 に答える 3

0

アダプターが使用しているデータ ソースから要素を削除した後listView、 を呼び出すadapter.notifyDataSetChanged()と、ビューが更新されて削除が反映されます。

于 2013-05-02T13:27:33.157 に答える