Как получить идентификатор из базы данных в списке? - PullRequest
0 голосов
/ 17 октября 2019

У меня 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]),
            );
          }
        },
      ),
    );
  }


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...