【问题标题】:How To Delete ListView Item from Database on LongClick?如何在 LongClick 上从数据库中删除 ListView 项?
【发布时间】:2017-02-12 04:55:26
【问题描述】:

我创建了一个从 SQLite 数据库填充的 Listview,并在 ListView 项目上长按我提供了一个带有两个按钮删除和取消的对话框。单击删除按钮时,我想从 SQLite 数据库中删除该 ListView 项目。但我没有在数据库中添加任何主键。那么如何通过它的Item Position来删除它。

【问题讨论】:

  • 从数据库中删除后,重新加载ListView,调用notifyDataChanged函数重新加载列表,对于主键,先获取选中位置的item再获取主键
  • 我也这样做,但它从列表视图项目中删除,而不是从数据库中删除
  • Integer deleteItem= databaseHelper.delete_byID(); 你传递的这一行 clicked positioid 并且你传递的条件不正确。
  • 条件如表行是否被删除

标签: android sqlite listview android-studio


【解决方案1】:
ArrayList<Object> items = query from sqlite; <--- notice
then set items to listView adapter
enter code here

在onitem中点击

@Override
public void onItemClick(final AdapterView<?> parent, View arg1, final int **position**, long arg3)
{

    ....
    builder.setPositiveButton("OK",
     new DialogInterface.OnClickListener() {
       public void onClick(DialogInterface dialog, int id) {


         Integer deleteItem= 
          databaseHelper.delete_byID
            (items.get(**position**).primaryKey); <----- change this

                        if(deleteItem>0)

                            Toast.makeText(getContext(), "Successfully Deleted", Toast.LENGTH_SHORT).show();
                        else
                            Toast.makeText(getContext(), "Not", Toast.LENGTH_SHORT).show();



                    }
                });
        builder.show();][1]

并重新加载 Listview 以将其也从 listView 中删除;

【讨论】:

    【解决方案2】:

    您可以在文本视图中以可见性View.GONE 传递它

    【讨论】:

    • 在列表视图中添加一个可见性消失的文本视图,并在单击列表视图时获取您的 id 并将其传递给您的查询
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    • 1970-01-01
    • 2017-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多