我试图打电话给saveName
,但没有任何东西被保存。而且我也可以看到提交已被弃用,那么如何在SharedPreferences
中保存值
Future saveName(bool isloggedIn,String passwordval) async {
sharedPreferences = await SharedPreferences.getInstance();
sharedPreferences.setBool("is_logged_in ", isloggedIn);
sharedPreferences.setString("password ", passwordval);
sharedPreferences.commit();
}
getCredential() async {
print("###coming inside getcredentials");
sharedPreferences = await SharedPreferences.getInstance();
setState(() {
isloggedIn = sharedPreferences.getBool("is_logged_in");
if (isloggedIn != null) {
if (isloggedIn) {
print("###isloggedin=true");
passwordController.text = sharedPreferences.getString("password");
} else {
print("###isloggedin=false");
passwordController.clear();
sharedPreferences.clear();
}
} else {
isloggedIn = false;
}
});
}
检查您在创建首选项时使用的密钥以及用于访问它的密钥。它们是不同的。 sharedPreferences.setBool("is_logged_in ", isloggedIn)
应该是await sharedPreferences.setBool("is_logged_in", isloggedIn)
。删除"is_logged_in "
和"password "
中的空格。即使您不包含sharedPreferences.commit();
,您的偏好也会保存