SharedPreference取值返回null求助:跨Activity获取存储值为空
嘿,我一眼就揪出你代码里的问题啦!你在Activity1中编辑完SharedPreference之后,没有提交你的修改操作——这就是为啥在Activity2里始终取不到值的核心原因。
SharedPreference的Editor对象只是临时保存你的修改,必须调用提交方法才能把数据真正写入到本地存储里。这里有两种常用的提交方式:
commit():同步执行写入操作,会返回一个boolean值表示提交是否成功,适合需要确认操作结果的场景apply():异步执行写入操作,没有返回值,性能更优,是大多数日常场景的首选
修正后的Activity1代码应该是这样的:
SharedPreferences preferences = getSharedPreferences("MyPref", Context.MODE_PRIVATE); SharedPreferences.Editor editor = preferences.edit(); editor.putString("NewEmailID", "example@xyz.com"); editor.apply(); // 也可以使用 editor.commit();
你的Activity2代码完全没问题,只要Activity1里完成了提交操作,就能正常获取到"example@xyz.com"这个字符串啦。
内容的提问来源于stack exchange,提问作者Sarthak Sharma
相关产品推荐
相关产品推荐

