You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SharedPreference取值返回null求助:跨Activity获取存储值为空

解决SharedPreference存值后取值为null的问题

嘿,我一眼就揪出你代码里的问题啦!你在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:26:27