Как я могу сохранить данные виджета на устройстве в Flutter?

#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(() {});  }