【发布时间】:2020-07-21 04:17:13
【问题描述】:
我正在尝试使用存储在共享首选项中的字符串填充文本字段,但我不明白该怎么做。
案例是:
1 - 我在第一个屏幕上登录。
2 - 用户名保存在共享首选项中。
3 - 然后用一些文本字段调用第二个屏幕。
4 - 用户名字段应填写已保存的用户。
这是我在第一个屏幕上存储用户名的方式:
final prefs = await SharedPreferences.getInstance();
final key = 'user';
final value = loggedUser;
prefs.setString(key, value);
print('saved $value');
这是我在第二个屏幕上用来检索用户名的函数:
static _read() async {
final prefs = await SharedPreferences.getInstance();
final key = 'user';
final value = prefs.getString(key);
print('saved $value');
String usu = value;
}
我可以在第二个屏幕上加载用户名,但我不能把它放在文本字段上,我该怎么做?
我已经尝试对函数进行一些修改(如下),他们在文本控制器上传递了函数但没有用,我猜这不是正确的方法。
static _read() async {
final prefs = await SharedPreferences.getInstance();
final key = 'usuario';
final value = prefs.getString(key);
print('saved $value');
String usu = value;
return usu; //the modification
}
控制器:
final _pecasController = TextEditingController(text: _read());
【问题讨论】:
-
添加您为 TextField 尝试过的内容
-
我刚刚更新
-
试试 _read().then((String name) => name);
-
在控制器上?我这样做并得到错误:类型'(String)=> String'不是类型'(dynamic)=> FutureOf(dynamic> of 'f'的子类型
-
@abrev 请先在你的状态下调用这个 _read() 方法,然后你就可以从你的共享偏好中获得价值。然后只需将您的 usu 传递给文本字段,就像这样 final _pecasController = TextEditingController(text: usu);
标签: android flutter sharedpreferences