当前位置: 首页 > 知识库问答 >
问题:

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

毛宏达
2023-03-14

我试图通过“保存数据”按钮从文本字段中获取数据,然后在单击“显示数据”按钮时在文本小部件中显示该数据。我正在使用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个答案

井旺
2023-03-14
//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') ?? ""; 
岳俊雅
2023-03-14

共享首选项库将数据存储为 。在代码中,您将值 lastname存储在键 firstname下。因此,当您尝试查找具有键 firstname的数据时,它返回lastName,但当您尝试获取链接到键 lastName的数据时,它不存在。

这段代码将引导您找到解决方案

prefs.setString("firstName", firstName);
prefs.setString("lastName", lastName);

...

setState(() {
  fName = prefs.getString("firstName");
  lName = prefs.getString("lastName");
});
 类似资料:
  • 我已经创建了一个布尔列表: } 任何建议都会很好,非常感谢!如果我可以从开关上的值字段中重建数据,但我没有看到任何答案...

  • 我的问题是无法使用和。所以我尝试使用XPath来选择对象,它可以工作,但我无法复制对象并再次添加它。 例如: 我还尝试创建一个自己的对象,但这对我来说也不起作用,因为它没有被接受为JAXB对象。 这是我的代码: 我重新创建了这个问题,因为我想旧的问题有点让人困惑。 我的XML文档(Document.getXML()) 我需要选择文本字段,进行邮件合并,我的计划是复制和移动字段。如果有更好的方法,我

  • 问题1我创建了一个文本字段,如上面的代码所示,并尝试使用TextBox.setValue(“测试值”)设置值;方法,但它给出的错误如下所示: 问题3 为了解决问题#2,我需要将NeedExceptions标志设置为true,如下所示,然后在PDF中正确显示该字段值。但是在这个解决方案之后,一旦用户改变了字段值,我们再次解析这个PDF字段,我就无法提取/解析PDF字段。 注意:-这个问题存在于Ado

  • 问题内容: 问题1, 我创建了一个文本字段,如上面的代码所示,并尝试使用textbox.setValue(“ Test Value”);设置值。方法,但显示如下错误: 第2期 为了解决问题#1,如果我使用cosDictionary属性(即cosDict1.setItem(COSName.V,new COSString(“ Test Value1”)))设置textBox的值; 然后在Adobe R

  • 我使用sharedpreferences保存了一些变量,但是我的save方法使应用程序崩溃,出现了空指针异常。 getSharedPreferences()本身不能工作,需要有上下文。在它之前,这可能是一个问题。我已经定义了上下文,导入了SharedPreferences,那么为什么这不起作用呢?