使用ListView的每一行中的按钮删除sqlite数据库的行

时间:2016-04-06 08:18:04

标签: android sqlite listview

我创建了一个列表视图,显示了数据库中的数据。在ListView的每一行中,我添加了一个CheckBox,一个用于删除它的按钮和另一个用于编辑它的按钮。 我的问题是获取行上的id,其中单击一个按钮以及如何转换并使用该id作为我的sqlite数据库命令? 设置一个长时间点击监听器有点麻烦,因为当它们中有一个CheckBox时行不响应长按,所以我希望按钮存在并运行。 谢谢

1 个答案:

答案 0 :(得分:0)

首先,我描述了代码的结构,然后是我找到的解决方案。

应用程序由一个包含ListView的主活动组成。然后有一个SqliteOpenHelper类来处理数据库,还有一个TaskProvider类,它包含数据库中变量的setter和getter方法,以及一个TaskAdapter,它是ListView的自定义适配器。 我面临的问题是我无法通过该行中存在的按钮来处理特定行。我是这样做的:

首先在SqliteOpenHelper类中,创建一个包含where子句和SqliteDataBase.delete方法的方法

SecureRandom

然后在适配器类的getView方法中,找到设置为删除行的按钮,并添加以下setOnClickListener:

public void deleteTask (SQLiteDatabase db , String deleted){
    String selection = Contracts.achieveTaskClass.ID+" LIKE ?";
    String[] selectionArgs = {deleted};
    db.delete(Contracts.achieveTaskClass.ACHIEVETASK_TABLE,selection,selectionArgs);
}