android学习笔记之轻量级存储SharedPreferences

SharedPreferences是一个接口,以下是android对此接口的官方介绍(用的geogle翻译)
api翻译:用于访问和修改所返回的首选项数据的接口Context#getSharedPreferences。对于任何特定的首选项集,所有客户端都共享一个此类的单个实例。对首选项的修改必须经过一个Editor对象,以确保首选项值保持一致状态并控制将它们提交到存储时的状态。从各种get方法返回的对象必须被应用程序视为不可变的。
注意:此类提供了强大的一致性保证。它正在使用昂贵的操作,这可能会使应用程序变慢。经常更改属性或可以容忍丢失的属性应使用其他机制。有关详细信息读取上的评论 Editor#commit()和Editor#apply()。

个人理解 :SharedPreferences就是一种用来存储一些简单数据的存在,可以存储一些配置信息之类的东西,用起来相当方便,说白了就是通过xml文件来实现数据的写入和读取。在实例化SharedPreferences对象后,会在data文件夹的此应用的包名下的shard-pref文件夹下生成一个xml文件,如下图:
在这里插入图片描述
此文件打开如下:在这里插入图片描述
于是乎就好理解了。
ok,怎么实现用SharedPreferences来存储数据呢。
1.先实例化一个SharedPreferences 对象出来,通过getSharedPreferences()这个方法来实现,有两个参数,第一个是这个xml文件的名字,后面那个MODE_PRIVATE是代表访问权限,MODE_PRIVATE是指只能被本应用中的程序读写;也可以是MODE_MULTI_PROCESS代表可以跨程读取。

SharedPreferences sp=getSharedPreferences("data",MODE_PRIVATE);

好了,已经实现了SharedPreferences 的对象了,官方翻译也说了
*“对首选项的修改必须经过一个Editor对象”*因此 我们要想向这个对象添加信息还需要一个Editor
2.通过SharedPreferences 对象的edit()方法来获取SharedPreferences.Editor对象

SharedPreferences.Editor editor=sp.edit();

然后我们就可以存储信息了
3.通过editor的putString()、putBoolean()等方法为editor添加数据,这些方法有两个参数。
在SharedPreferences 中数据的存储是采用k-v的方式来进行的,下面的代码应该能理解。

editor.putString("username",username);
editor.putString("password",password);

4.最后调用commit()或apply()方法提交。

editor.apply();

————————————————————————————————————————————————————————————————————————————————————————
经过上面的操作xml文件里面已经有了信息。
那怎么读取信息呢?
也要先现实SharedPreferences 对象,如果存在这个xml文件,getSharedPreferences()会直接返回这个对象,如果不存在,就创建。

SharedPreferences sp=getSharedPreferences("data",MODE_PRIVATE);

然后调用getString()、getBoolean()等方法来获取数据。如下:
值得说一下的是,这个方法的返回值问题,如果有这个值(第一个参数)就返回这个值;如果没有就返回第二个参数的值。

sp.getString("username",username)
发布了20 篇原创文章 · 获赞 11 · 访问量 4029

猜你喜欢

转载自blog.csdn.net/qq_34423913/article/details/104265411