如何使用 SharedPreferences 正确保存文本字段中的数据?
How to properly save data in text field flutter using SharedPreferences?
我试图通过 'Save Data' 按钮从文本字段中获取数据,然后在单击 'Show Data' 按钮时在文本小部件中显示该数据。我正在使用 SharedPreferences 依赖项。我已经完成了代码,但有一个问题,每当我单击 'Show Data' 按钮时,它只显示来自第二个文本字段的数据,如下所示:LastName null
结果应该是:名字姓氏
Here's the Save Data
saveData(String firstName, String lastName) async {
final prefs = await SharedPreferences.getInstance();
prefs.setString(firstName, lastName);
}
Here's the Show Data
showData(String firstName, String lastName) async {
final prefs = await SharedPreferences.getInstance();
setState(() {
fName = prefs.getString(firstName);
lName = prefs.getString(lastName);
});
}
共享首选项库将数据存储为 。在您的代码中,您将值 lastName
存储在键 firstName
下。
因此,当您尝试使用键 firstName
查找数据时,它 returns 姓氏,但是当您尝试获取链接到键 lastName
的数据时,它不存在。
此代码应引导您找到解决方案
prefs.setString("firstName", firstName);
prefs.setString("lastName", lastName);
...
setState(() {
fName = prefs.getString("firstName");
lName = prefs.getString("lastName");
});
//To save data in shared preference
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setString('firstName', 'ABC'); //'firstName' is key and 'ABC' is the value
prefs.setString('lastName', 'D');
//To get data saved in shared preference
String firstname = prefs.getString('firstName') ?? ""; //Pass the key to retrieve saved data
String lastname = prefs.getString('lastName') ?? "";
我试图通过 'Save Data' 按钮从文本字段中获取数据,然后在单击 'Show Data' 按钮时在文本小部件中显示该数据。我正在使用 SharedPreferences 依赖项。我已经完成了代码,但有一个问题,每当我单击 'Show Data' 按钮时,它只显示来自第二个文本字段的数据,如下所示:LastName null
结果应该是:名字姓氏
Here's the Save Data
saveData(String firstName, String lastName) async {
final prefs = await SharedPreferences.getInstance();
prefs.setString(firstName, lastName);
}
Here's the Show Data
showData(String firstName, String lastName) async {
final prefs = await SharedPreferences.getInstance();
setState(() {
fName = prefs.getString(firstName);
lName = prefs.getString(lastName);
});
}
共享首选项库将数据存储为 lastName
存储在键 firstName
下。
因此,当您尝试使用键 firstName
查找数据时,它 returns 姓氏,但是当您尝试获取链接到键 lastName
的数据时,它不存在。
此代码应引导您找到解决方案
prefs.setString("firstName", firstName);
prefs.setString("lastName", lastName);
...
setState(() {
fName = prefs.getString("firstName");
lName = prefs.getString("lastName");
});
//To save data in shared preference
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setString('firstName', 'ABC'); //'firstName' is key and 'ABC' is the value
prefs.setString('lastName', 'D');
//To get data saved in shared preference
String firstname = prefs.getString('firstName') ?? ""; //Pass the key to retrieve saved data
String lastname = prefs.getString('lastName') ?? "";