expandablelistview复选框不保持检查状态

时间:2012-05-24 16:32:23

标签: android checkbox expandablelistview

我正在使用正确保存所有内容的本地sqlite数据库。当我在expandableListView中打开一个组时,将选中已存储在db中的所有复选框复选框。当我编辑一个条目(我使用AlertDialog)时,关闭该组,然后重新打开该组。不再选中该复选框。我检查了数据库并保存了编辑。如果我转到另一页并返回,一旦我点击该组,我再次检查我编辑的子项。我在eclipse中使用了断点,它似乎在数据库中找到了数据,但没有将该框标记为已选中。有什么想法吗?

enter image description here

这是我第一次点击群组(引擎)时的图像

enter image description here

现在我使用AlertDialog来更新条目

enter image description here

现在我关闭了小组

enter image description here

当我重新打开电池盒时,不再检查。

以下是我打开群组时的代码

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;

1 个答案:

答案 0 :(得分:2)

保存到数据库后,您应该requery()组游标,它应该重新生成列表视图(或者因为已经弃用了重新查询而异步等效)。