我有自定义适配器,在listview的布局中有一个删除按钮,它也应该从listview和数据库中删除该项目。为了从listview中删除项目,我使用了myList.remove(position)。但同时我也应该从数据库中删除该项目。我在databasehandler类中创建了一个方法delete项,它接受了object的参数。
public void deleteItem(Object item)
{
SQLiteDatabase db= this.getWritableDatabase();
db.delete(DataConstants.table_name, DataConstants.id_name + "=?", new String[]{*});//add item id in database here
}
我应该保留什么来替代astrick以便我可以从数据库中获取项目并将其删除。
答案 0 :(得分:0)
你可以把任何你独特的地方astrick。但最好的方法是将主键或行ID放在这里; 喜欢
db.delete(DataConstants.table_name, DataConstants.id_name + "=?", new String[]{String.valueOf(1)});
答案 1 :(得分:0)
您应该将对象数组存储在ListView
适配器中,因此,您可以使用:myAdapter.getItem(position).getID()
检索每个项目ID。 getID()
是一种getter方法,您应该在Item
类中定义。
然后您可以通过执行以下操作删除数据库中的相应记录:mDatabase.delete(TABLE_NAME, "id=" + id, null);
如果您需要有关此答案的更多详细信息,请与我们联系。
更新:
例如,您将稍后将这类项目传递给ListView
适配器:
public class MyItem {
// Attributes
private int mID;
private String mName;
private String mDescription;
// Constructor
public MyItem(int id, String name, String description) {
mID = id;
mName = name;
mDescription = description;
}
/* Get the ID of Item object outside this class
(for example : in ListView Activity) */
public int getID() {
return id;
}
/*
.
. Some other useful code may be
.
*/
}
答案 2 :(得分:0)
简单的首先得到listview上的名字。 getallrows并在name colum中找到包含该名称的那个。 该列的getId ..