我正在使用正确保存所有内容的本地sqlite数据库。当我在expandableListView中打开一个组时,将选中已存储在db中的所有复选框复选框。当我编辑一个条目(我使用AlertDialog)时,关闭该组,然后重新打开该组。不再选中该复选框。我检查了数据库并保存了编辑。如果我转到另一页并返回,一旦我点击该组,我再次检查我编辑的子项。我在eclipse中使用了断点,它似乎在数据库中找到了数据,但没有将该框标记为已选中。有什么想法吗?
这是我第一次点击群组(引擎)时的图像
现在我使用AlertDialog来更新条目
现在我关闭了小组
当我重新打开电池盒时,不再检查。
以下是我打开群组时的代码
public void onGroupExpand(int groupPosition)
{
db= new InspectionRecordsTableDBAdapter(getBaseContext());
db.open();
int inspectionId = com.signalsetapp.inspectionchecklist.report
.returnStringID();
String [] child=kids[groupPosition];
ArrayList<Color> secList = new ArrayList<Color>();
for(int i=0; i<child.length;i++)
{
try {
if (db.childFound(inspectionId, child[i]))
secList.add(new Color(child[i], true));
else
secList.add(new Color(child[i], false));
} catch (Exception e) {
secList.add(new Color(child[i], false));
e.printStackTrace();
}
}
}
这里是保存到db中的更新代码。这确实可以正确保存到db
中db.editRecords(
primaryId,
com.signalsetapp.inspectionchecklist.report
.returnStringID(),
parent[groupPosition],
kids[groupPosition][childPosition],
input.getText().toString(), status);
onExpand=true;
答案 0 :(得分:2)
保存到数据库后,您应该requery()
组游标,它应该重新生成列表视图(或者因为已经弃用了重新查询而异步等效)。