【问题标题】:How to properly save data in text field flutter using SharedPreferences?如何使用 SharedPreferences 在文本字段中正确保存数据?
【发布时间】:2021-03-24 12:48:44
【问题描述】:

我正在尝试通过“保存数据”按钮从文本字段中获取数据,然后在单击“显示数据”按钮时在文本小部件中显示该数据。我正在使用 SharedPreferences 依赖项。我已经完成了代码,但是有一个问题,每当我单击“显示数据”按钮时,它只显示来自第二个文本字段的数据,如下所示: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);
});
}

【问题讨论】:

    标签: android ios flutter dart sharedpreferences


    【解决方案1】:

    共享首选项库将数据存储为 。在您的代码中,您将值 lastName 存储在键 firstName 下。 因此,当您尝试使用键 firstName 查找数据时,它会返回 lastName,但是当您尝试获取与键 lastName 链接的数据时,它不存在。

    此代码应该会引导您找到解决方案

    prefs.setString("firstName", firstName);
    prefs.setString("lastName", lastName);
    
    ...
    
    setState(() {
      fName = prefs.getString("firstName");
      lName = prefs.getString("lastName");
    });
    

    【讨论】:

      【解决方案2】:
      //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') ?? ""; 
      

      【讨论】:

        猜你喜欢
        • 2018-02-13
        • 2023-03-14
        • 1970-01-01
        • 2014-07-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-02
        相关资源
        最近更新 更多