尝试存储字符串时为何一直显示‘Instance of SharedPreferences’?
问题核心是你直接打印了SharedPreferences对象本身,而非从它里面取出存储的用户名字符串。
错误根源
你大概率写了这类代码:
SharedPreferences prefs = await SharedPreferences.getInstance(); print(prefs); // 这里输出的是SharedPreferences实例,不是你存的用户名
正确操作方式
要获取并打印存储的用户名,必须调用SharedPreferences的getString()方法:
// 存储用户名 SharedPreferences prefs = await SharedPreferences.getInstance(); await prefs.setString("username", "要保存的用户名内容"); // 获取并打印用户名 String? username = prefs.getString("username"); print(username); // 此时会输出你存储的用户名
重要提示
- 存储和获取时要保证键名(比如示例中的"username")完全一致
- 根据存储数据的类型调用对应get方法:字符串用
getString、整数用getInt,不能直接打印SharedPreferences对象
内容的提问来源于stack exchange,提问作者josh
相关产品推荐
相关产品推荐

