У меня Listview с ListTile, заполненным из базы данных, у меня есть флажок на каждой плитке, и я временно сохраняю элемент в sharepref, пока все хорошо.
Проблема в том, что я запрашиваю и сортирую элементы в другом порядке,флажок сохранить все тот же порядок, как в БД не в списке, я думаю, мне нужен индекс-id элемента. Итак, как получить идентификатор из базы данных элемента в списке просмотра?
Widget getListView() {
return Expanded(
child: ListView.builder(
itemCount: _items.length,
shrinkWrap: true,
itemBuilder: (context, index) {
final item = _items[index];
if (item is HeaderItem) {
return Column(
children: <Widget>[
Card(
color: Colors.white,
child: Text(
item.heading,
style: TextStyle(
fontSize: 22.0,
fontWeight: FontWeight.w600,
color: Constants.title_header),
),
),
Divider(),
],
);
} else if (item is MessageItem) {
return ListTile(
dense: true,
leading: Checkbox(
value: item.checked,
onChanged: (bool value) {
setState(() {
item.checked = value;
if (value) {
_removeAnswer(_index);
_saveAnswer(_index); //saving to sharePref..
if (_list[7] == "1") {
_removeAnswer2(_index);
_saveAnswerSummary(_index);
}
_index++;
}
if (value == false) {
_index--;
_removeAnswer(_index);
_removeAnswer2(_index);
setState(() {
});
}
print("Check box2: $value");
setState(() {
_getFromDB0(_index);
});
});
},
),
title: Text(
item.title,
),
// subtitle: Text(_list2[index]),
);
}
},
),
);
}