0

私はすべてを適切に保存しているローカルsqliteデータベースを使用しています。ExpandableListViewでグループを開くと、データベースに保存されているすべてのチェックボックスがオンになっています。エントリを編集するとき(AlertDialogを使用しました)、グループを閉じてから、グループを再度開きます。チェックボックスはチェックされなくなりました。dbを確認し、編集内容を保存しました。別のページに移動して戻ってきた場合、グループをクリックすると、編集した子アイテムがもう一度チェックされます。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.editRecords(
                                        primaryId,
                                        com.signalsetapp.inspectionchecklist.report
                                                .returnStringID(),
                                        parent[groupPosition],
                                        kids[groupPosition][childPosition],
                                        input.getText().toString(), status);
                                onExpand=true;
4

1 に答える 1

2

データベースに保存した後、グループカーソルを作成し、リストビューを再生成する必要requery()があります(または、再クエリが非推奨になっているため、非同期の同等の機能)。

于 2012-05-24T16:42:15.383 に答える