0

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

在此处输入图像描述

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

在此处输入图像描述

现在我正在使用 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.editRecords(
                                        primaryId,
                                        com.signalsetapp.inspectionchecklist.report
                                                .returnStringID(),
                                        parent[groupPosition],
                                        kids[groupPosition][childPosition],
                                        input.getText().toString(), status);
                                onExpand=true;
4

1 回答 1

2

requery()保存到数据库后,您应该使用组游标,它应该重新生成列表视图(或异步等效项,因为不推荐使用 requery)。

于 2012-05-24T16:42:15.383 回答