Android 如何在LongClick上从数据库中删除ListView项?
我创建了一个从SQLite数据库填充的Listview,然后长时间单击Listview项,我提供了一个带有两个按钮Delete和cancel的对话框。单击Delete按钮,我想从SQLite数据库中删除ListView项,但我没有在数据库中添加任何主键。因此,如何按项目位置删除它。您可以在文本视图中以可见性Android 如何在LongClick上从数据库中删除ListView项?,android,sqlite,listview,android-studio,Android,Sqlite,Listview,Android Studio,我创建了一个从SQLite数据库填充的Listview,然后长时间单击Listview项,我提供了一个带有两个按钮Delete和cancel的对话框。单击Delete按钮,我想从SQLite数据库中删除ListView项,但我没有在数据库中添加任何主键。因此,如何按项目位置删除它。您可以在文本视图中以可见性视图传递它。Goe您可以在文本视图中以可见性视图传递它。GoeArrayList items=从sqlite查询arraylistitems=来自sqlite的查询;从数据库中删除后,重新加载
视图传递它。Goe
您可以在文本视图中以可见性视图传递它。Goe
ArrayList items=从sqlite查询arraylistitems=来自sqlite的查询;从数据库中删除后,重新加载ListView,调用notifyDataChanged函数重新加载列表,对于主键,首先获取具有选定位置的项,然后获取主键。我也这样做,但它是从ListView项中删除的,而不是从databaseInteger deleteItem=databaseHelper中删除的。delete_byID();您要传递的此行单击了positioid,传递的条件不正确。类似于表行已删除或未从数据库中删除后,重新加载ListView,调用notifyDataChanged函数重新加载列表,对于主键,首先获取具有选定位置的项,然后获取主键。我也会这样做,但它是从listview项中删除的,而不是从databaseInteger deleteItem=databaseHelper.delete_byID();您传递单击的positioid的此行,传递的条件不正确。列表视图中的条件(如表行已删除或未删除)在可见性消失的情况下再添加一个文本视图,并在单击列表视图时获取id,然后将其传递到查询列表视图中在可见性消失的情况下再添加一个文本视图并获取id单击列表视图并将其传递到查询
ArrayList<Object> items = query from sqlite; <--- notice
then set items to listView adapter
enter code here
@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]