使用SharedPreferences(保存用户偏好参数)保存数据, 当我们的应用想要保存用户的一些偏好参数,比如是否自动登陆,是否记住账号密码,是否在Wifi下才能 联网等相关信息,如果使用数据库的话,显得有点大材小用了!我们把上面这些配置信息称为用户的偏好 设置,就是用户偏好的设置,而这些配置信息通常是保存在特定的文件中!比如windows使用ini文件, 而J2SE中使用properties属性文件与xml文件来保存软件的配置信息;而在Android中我们通常使用 一个轻量级的存储类——SharedPreferences来保存用户偏好的参数!SharedPreferences也是使用xml文件, 然后类似于Map集合,使用键-值的形式来存储数据;我们只需要调用SharedPreferences的getXxx(name), 就可以根据键获得对应的值!使用起来很方便!
SharedPreferences是一种轻型的Android数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/<包名>/shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。比较经典的使用方式例如用户输入框对过往登录账户的存储。实现SharedPreferences存储的步骤如下:
1、根据Context获取SharedPreferences对象
2、利用edit()方法获取Editor对象。
3、通过Editor对象存储key-value键值对数据。
4、通过apply()方法提交数据。
版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明。2019-08-28,17:41:40。
作者By-----溺心与沉浮----博客园
SharedPreferences的使用
1 1)写入数据: 2 //步骤1:创建一个SharedPreferences对象 3 SharedPreferences sharedPreferences= getSharedPreferences("data",Context.MODE_PRIVATE); 4 //步骤2: 实例化SharedPreferences.Editor对象 5 SharedPreferences.Editor editor = sharedPreferences.edit(); 6 //步骤3:将获取过来的值放入文件 7 editor.putString("name", “Tom”); 8 editor.putInt("age", 28); 9 editor.putBoolean("marrid",false); 10 //步骤4:提交 11 editor.commit();(apply()) 12 13 2)读取数据: 14 SharedPreferences sharedPreferences= getSharedPreferences("data", Context .MODE_PRIVATE); 15 String userId=sharedPreferences.getString("name",""); 16 17 3)删除指定数据 18 editor.remove("name"); 19 editor.commit(); 20 21 4)清空数据 22 editor.clear(); 23 editor.commit();(apply())
版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明。2019-08-28,17:41:40。
作者By-----溺心与沉浮----博客园
注意:如果在 Fragment 中使用SharedPreferences 时,需要放在onAttach(Activity activity)里面进行SharedPreferences的初始化,否则会报空指针 即 getActivity()会可能返回null !
读写其他应用的SharedPreferences 步骤如下(未实践):
?1. 在创建SharedPreferences时,指定MODE_WORLD_READABLE模式,表明该SharedPreferences数据可以被其他程序读取;
?2. 创建其他应用程序对应的Context;
?3. 使用其他程序的Context获取对应的SharedPreferences;
?4. 如果是写入数据,使用Editor接口即可,所有其他操作均和前面一致;
1 * SharedPreferences数据的四种操作模式: 2 * 一、Context.MODE_PRIVATE 3 * 二、Context.MODE_APPEND 4 * 三、Context.MODE_WORLD_READABLE 5 * 四、Context.MODE_WORLD_WRITEABLE 6 *
7 * Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容 8 * Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件. 9 * Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件. 10 *
11 * MODE_WORLD_READABLE:表示当前文件可以被其他应用读取. 12 * MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入 13 *
14 * 特别注意:出于安全性的考虑,MODE_WORLD_READABLE 和 MODE_WORLD_WRITEABLE 在Android 4.2版本中已经被弃用
1 try { 2 //这里的com.example.mpreferences 就是应用的包名
3 Context mcontext = createPackageContext("com.example.mpreferences", CONTEXT_IGNORE_SECURITY); 4
5 SharedPreferences msharedpreferences = mcontext.getSharedPreferences("name_preference", MODE_PRIVATE); 6 int count = msharedpre