#flutter #dart
#flutter #dart
Вопрос:
Я создаю относительно простое приложение, в котором можно установить экстренный контакт, и в случае чрезвычайной ситуации текст отправляется контакту нажатием кнопки дистанционного управления (подключенной через Bluetooth).) Я использовал средство выбора контактов пакета, и оно работает отлично. Теперь проблема в том, что я пытаюсь сохранить контакт локально при повторном запуске приложения. Строка set state возвращает ошибку, что я не могу установить для contact значение типа string .
final ContactPicker _contactPicker = new ContactPicker();
Contact _contact;
@override
void initState() {
getData();
}
getData() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
setState(() {
_contact = prefs.getString(_contact.toString());
});
}```
Ответ №1:
возможно, вам нужно декодировать эту строку из prefs
, чтобы она могла быть преобразована в Contact
экземпляре.
эта строка prefs.getString(_contact.toString())
возвращает строку в $fullName: $phoneNumber
этом формате
например
var decodedList = prefs.getString('contact').split(" ");
setState(() {
_contact = Contact(fullName: decodedList.first, phoneNumber: decodedList[1]);
});
Комментарии:
1. для сохранения данных вам необходимо вызвать
await prefs.setString('contact', _contact.toString())