#flutter #dart
Вопрос:
когда файл добавляется, я хочу использовать простой способ доступа к этому файлу в своем приложении. для этого я использую виджет ListView.builder (). но я не могу сохранить данные в приложении, над которым работал в пакете shared_preferences. По крайней мере, я не знаю, как мне это сделать
Комментарии:
1. Создайте класс модели, храните данные по этой модели. Затем вы сможете создать свой экран с помощью ListView builder, соответствующего этим сохраненным данным.
2. создайте модель и поместите ее в список типов и преобразуйте этот список в json, а затем сохраните в разделе предпочтения после получения его из общего предпочтения, декодируйте json и снова сопоставьте его с вашей моделью и используйте его в построителе listview…………….улыбнись сейчас
Ответ №1:
Я решил свою проблему с этим блоком, я использую ListviewBuilder для создания виджетов, поэтому мне нужен был массив. после этого я хотел сохранить эти данные на своем устройстве. Я использую общие настройки, но общие настройки позволяют добавлять только массив строк. затем я декодировал все массивы в строковый массив, когда запускал виджет в initstate. Затем я беру данные, кодирую данные массива, затем добавляю значение в свою переменную.
SharedPreferences? sharedPref; Listlt;Maplt;String, dynamicgt;gt; documents = []; Listlt;Stringgt; documentsEncode = []; @override void initState() { super.initState(); getInstance(); } Futurelt;voidgt; getInstance() async { final sharedPref = await SharedPreferences.getInstance(); documentsEncode = sharedPref.getStringList(widget.collection!) ?? []; documentsEncodeToDecode(); // main(); } documentsEncodeToDecode() { documents.clear(); documentsEncode.forEach((documentEncode) { Maplt;String, dynamicgt; document = jsonDecode(documentEncode); documents.add(document); }); setState(() {}); }