Как добавить два числа, извлеченные из SharedPreferences во Flutter - PullRequest
0 голосов
/ 25 января 2019

Я пытался добавить два числа, скажем point1 и point2.Эти точки хранятся в SharedPreferences.Я получил точки, используя функцию Future<int> fetchPoints, которая находится ниже.Затем я вызвал это из другой функции

fetchPoints:

Future<int> fetchFromSps(String field) async { SharedPreferences sp = await SharedPreferences.getInstance(); return sp.getInt(field); }

GetPoints:

Future<void> setPoints() async{
    int _newPoints=await ((await fetchFromSps('point1'))+(await fetchFromSps('point2')));
    setState(() {
      _totalPoints=_newPoints.toString();
    });
  }

setInSharedPreference:

void setInSharedPreference() async{
    SharedPreferences prefs=await SharedPreferences.getInstance();
    prefs.setInt('point1', 0);
    prefs.setInt('point2',0);
}


Функция setInSharedPreference находится в другом файле дротика, который содержит основную функцию

Мне нужно добавить две точки с именем 'point1 и 'point2' из общих настроек

1 Ответ

0 голосов
/ 25 января 2019

просто вызовите их из любого метода, подобного этому образцу:

  fetchTwoPoints() async {
     final point1 = await fetchFromSps("point1");
     final point2 = await fetchFromSps("point2");
      setState(() {
         _totalPoints= (point1 + point2).toString();
       });
  }

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

Future<void> setInSharedPreference() async{
    SharedPreferences prefs=await SharedPreferences.getInstance();
    await prefs.setInt('point1', 0);
    await prefs.setInt('point2',0);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...