为什么我不用Editor也可以获得

为什么我不用Editor也可以获得

private void testSharedPreferences() {
       //得到一个对象
       SharedPreferences sharedPreferences = getSharedPreferences("test", Context.MODE_PRIVATE);
        sharedPreferences.edit()
                .putString("name", "sss")
                .putInt("age", 12)
                .commit();



       String name = sharedPreferences.getString("name", null);
       int age = sharedPreferences.getInt("age", 0);
       Log.e(TAG, "testSharedPreferences: " + "name:" + name + " age:" + age);
   }

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
提问者 夏析 2017-12-05 19:13:36

就是说 用不用Editor都行

  • 如果不做写操作只是读的话,是不需要用Editor的。而你上面写操作时sharedPreferences.edit()其实就已经获取到这个Editor了。祝:学习愉快
    2017-12-06 10:28:42
追梦不再迷茫 2017-12-05 09:33:34

sharedPreferences.edit()
                .putString("name", "sss")
                .putInt("age", 12)
                .commit();

这里是因为sharedPreferences.edit()是一个单一的对象

老师的代码:

sharedPreferences.edit().putString("name", "sss");

sharedPreferences.edit().putInt("age", 12);

sharedPreferences.edit() .commit();

这里有三个Editor对象

而日志显示的是最新的对像(sharedPreferences.edit() .commit();)

且最后只是提交业务的对象没有赋任何的值在里面

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Android网络操作与数据存储2018版
  • 参与学习           人
  • 提交作业       307    份
  • 解答问题       1613    个

本专题是联网及数据处理的必备技能。课程从网络基础知识到线程间协同工作、异步下载处理。介绍了Android内外部文件存储、轻量级数据库SQLite的使用。利用屏幕适配、状态保持、百度地图解决实际问题。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师