【发布时间】:2021-03-19 14:23:32
【问题描述】:
我想在该页面中设置 sharedPreferences 变量。但是当我调用函数(例如 _getUsername)时,我收到了类似“Flutter: 'Future' is not a subtype of type 'String'' 的错误。
如何在该页面中获取和设置值?为什么不能在小部件中显示字符串值?这应该是我的“编辑设置”页面。我想编辑三个变量用户名、密码和 url。 感谢您的帮助。
class ThirdRoute extends StatefulWidget {
@override
_ThirdRouteState createState() => _ThirdRouteState();
}
class _ThirdRouteState extends State<ThirdRoute> {
String username = '';
String password = '';
String url = '';
@override
void initState() {
super.initState();
username = _getUsername();
password = _getPassword();
url = _getUrl();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("edit page")),
body: Center(
child: ListView(
children: [
Container(
child: Text(username),
),
Container(
child: Text(password),
),
Container(
child: Text(url),
),
FlatButton(
onPressed: () {
setState(() {
_setUsername("new username");
_setPassword("new password");
_setUrl("new url");
});
},
)
],
),
),
);
}
}
_getUsername() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
return prefs.getString('username');
}
_getPassword() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
return prefs.getString('password').toString();
}
_getUrl() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
return prefs.getString('url').toString();
}
_setUsername(newUsername) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.setString("username", newUsername);
}
_setPassword(newPassword) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.setString("password", newPassword);
}
_setUrl(newUrl) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.setString("url", newUrl);
}
【问题讨论】:
标签: flutter dart sharedpreferences