Данные в списке исчезают при перезапуске приложения? - PullRequest
0 голосов
/ 27 апреля 2020

Вот код, это список

List<String> favourites = [];

Вот код, который добавляет элементы в список

Padding(
 padding: const EdgeInsets.all(15.0),
 child: Container(
 color: Colors.black87,
  height: 400.0,
                  width: 100.0,
                  child: ListView.builder(
                      itemCount: favourites.length,
                      itemBuilder: (context, index) {
                        return Card(
                          color: Colors.black87,
                          child: Center(
                            child: Text(
                              favourites[index],
                              style: TextStyle(
                                  color: Colors.white, fontSize: 22.0),
                            ),
                          ),
                        );
                      }),
                ),
              ),

, поэтому при перезапуске приложения предыдущее содержимое списка исчезает, поэтому подскажите, пожалуйста, как сохранить сохраненные элементы в списке постоянно.

Ответы [ 2 ]

0 голосов
/ 27 апреля 2020

Вам необходимо сохранить свой список в SharedPreferences. Я рекомендую вам использовать плагин shared_preferences, который вы можете найти здесь: https://pub.dev/packages/shared_preferences.

получить свой экземпляр SharedPreferences

SharedPreferences prefs = await SharedPreferences.getInstance();

установить список

prefs.setStringList('key', list);

получить список

prefs.getStringList('key');

Со своим списком, сохраненным в SharedPreferences, вы может рассмотреть возможность получения ваших данных каждый раз, когда вы открываете приложение.

void main() {
  startUp();
}

Future startUp() async {
  SharedPreferences prefs = SharedPreferences.getInstance();
  runApp(MyApp(prefs));
}
0 голосов
/ 27 апреля 2020

Я даю вам очень основную c идею, как это сделать

SharedPreferences _prefs;

@override
void initState() {
  super.initState();

  SharedPreferences.getInstance().then((prefs) => setState(() => _prefs = prefs));
}

_saveList(List list) {
  _prefs.setStringList('key', list);
}

List _fetchList() {
  return _prefs.getStringList('key');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...