android - 无法从共享首选项中获取数据
问题描述
我正在保存电话号码。在共同偏好和另一项活动中,我试图获得电话号码。来自共同的偏好。
private static final String KEY_PHONE = "keyphone";
SharedPreferences sharedPreferences = getSharedPreferences("simplifiedcodingsharedpref", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(KEY_PHONE, "3454534565");
editor.apply();
在另一个活动中,我正在使用这样的东西:
SharedPreferences sp = getSharedPreferences("simplifiedcodingsharedpref", Context.MODE_PRIVATE);
String phone_id = sp.getString("keyphone","");
Toast.makeText(getApplicationContext(), phone_id, Toast.LENGTH_SHORT).show();
我的问题是在这里我没有在敬酒消息中收到电话号码,而且我的敬酒是空的。
有人请让我知道如何在其他活动中获得电话号码。任何帮助将不胜感激。
谢谢
解决方案
除了一件事,你做的一切都是对的。
检索字符串值时,您不能只将值字段设置为“”。
检索String时,默认值为null,检索布尔值时,默认值为false,检索布尔值时,默认值为false。
所以而不是使用
String phone_id = sp.getString("keyphone","");
你需要使用
String phone_id = sp.getString("keyphone", null);
推荐阅读
- mysql - 如何使用 Python Flask 从 MYSQL 获取 XML?
- react-native - 在 React-navigation 中使用 React-native-notifications
- sql-server - 为 system.data 创建配置节处理程序时出错:invariant-name is constrained to be unique
- r - 为 mlr 包中的特征选择传递数据类型参数
- google-chrome-extension - 无 cookie 嵌入 YouTube 视频的内容脚本
- java - 如何将可移植文档格式 (PDF) 内容类型添加到 WebDriver 打开的 Firefox 浏览器的应用程序
- html - 仅使用 CSS 完全删除 HTML 元素?
- html - flex 和 height 属性有什么区别?
- javascript - 保存时刻以用作 React-Big-Calendar 中的事件
- c# - 为什么我的 RichTextBox 没有更改前景色数据绑定