如何在对象

时间:2016-12-09 15:24:23

标签: android sqlite

我有自定义适配器,在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以便我可以从数据库中获取项目并将其删除。

3 个答案:

答案 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 ..