我有一个表名学生,其中一个是专栏。在我已经结婚或者没有结婚的地方,首先是所有学生,然后我尝试标记已婚学生,其中有25个中的5个,其中列出了就像这样
String[] fields = new String[] { "substr(name,1,23)",
"substr(address,1,35)" };
int[] views = new int[] { R.id.name, R.id.address, };
cursor = SQDatabase
.rawQuery(
"SELECT _id, substr(name,1,23),substr(address,1,35) FROM student WHERE ismarried=" + 1,
null);
adapter = new SimpleCursorAdapter(this, R.layout.student_list_item,
cursor, fields, views);
jokesList.setAdapter(adapter);
注意:这里1是结婚值,其中0是未婚。所以只有5名学生展示。
现在,我的问题是,我检查了5中的3个,并希望从列表中删除该3个学生而不是数据库。如何获取已检查的项目ID,我不明白,
“我没有得到那个经过检查的项目ID,但这个被解雇了
//DBHelper.java
public void removeMarried(int i) {
myDataBase = this.getWritableDatabase();
String Query = "UPDATE student SET ismarried=0 WHERE _id = " + i;
myDataBase.execSQL(Query);
}
并检查了侦听器
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (buttonView.isChecked()) {
Log.d(TAG, "Checked item ");
} else {
Log.d(TAG, "UnChecked item ");
}
}
最后在删除时点击
removeMarried(1);
完整代码:http://pastebin.com/Wc5XWvJG
请给我一些建议。
答案 0 :(得分:1)
只需在此链接中查看已接受的答案:How to delete check box items from list
它将帮助您解决问题
答案 1 :(得分:0)
您还必须从适配器中删除所选项目,然后调用notifyDataSetChanged() 我似乎无法从方法removeMarries(int i)中找到代码?