提问者:小点点

如何使用SharedPreferences在文本字段flutter中正确保存数据?


我试图通过“保存数据”按钮从文本字段中获取数据,然后在单击“显示数据”按钮时在文本小部件中显示该数据。我正在使用SharedPreferences依赖项。我已经完成了代码,但有一个问题,每当我单击“Show data”按钮时,它只显示来自第二个文本字段的数据,如下所示:LastName null

结果应该是:FirstName LastName

这是保存数据

saveData(String firstName, String lastName) async {
final prefs = await SharedPreferences.getInstance();
prefs.setString(firstName, lastName);
}

这是演出数据

showData(String firstName, String lastName) async {
final prefs = await SharedPreferences.getInstance();
setState(() {
  fName = prefs.getString(firstName);
  lName = prefs.getString(lastName);
});
}

共2个答案

匿名用户

共享首选项库将数据存储为。在代码中,您将值lastname存储在键firstname下。因此,当您尝试查找具有键firstname的数据时,它返回lastName,但当您尝试获取链接到键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') ?? "";