私はすべてを適切に保存しているローカル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;