如何使用 OnItemLongClickListener() 从 SQLite 创建的列表视图中删除项目?

How to delete items from listview created from SQLite using OnItemLongClickListener()?

我无法在使用 SimpleCursorAdapter 创建的列表视图中找到要删除的答案 所以我在一个片段中制作了这个列表视图,这是代码

final Cursor cursor = myDb.cautarevenituri();

    // The desired columns to be bound
    final String[] columns = new String[] {
            DatabaseHelper.COL_2,
            DatabaseHelper.COL_3
    };

    int[] toviewids = new int[] { R.id.nume_item,R.id.valoare_item};
    dataAdapter = new SimpleCursorAdapter(getActivity().getBaseContext(),R.layout.item_layout,cursor,columns,toviewids,0);
    //
    final ListView listView = (ListView)getView().findViewById(R.id.listView_venituri);

    listView.setAdapter(dataAdapter);
    listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(AdapterView<?> parent, View view,
                                       int position, long arg3) {
            Toast.makeText(getActivity(), " " + position, Toast.LENGTH_LONG).show();

            //delete from listview in database and listview too??
            //
            //

            return false;
        }

    });

谢谢。

从数据库中删除并刷新列表视图。

您必须更新传递给适配器的列表,然后调用 adapter.notifyDataSetChanged()

使用swapCursor()方法更新SimpleCursorAdapter里面的数据:

myDb.getWriteableDatabase().delete(TABLE_NAME, KEY_ID + "=?", position);
Cursor newCursor = myDb.getReadableDatabase().query(**etc.**);
dataAdapter.swapCursor(newCursor);