一、为什么使用SharedPreferences
android中的数据存储大致可以分为三大类:
- sharedpreferences存储
- file文件存储
- sqlite数据库存储
相对于另外两种存储方式,sharedpreferences的存储更简洁、清晰,所以sharedpreferences存储成为android中非常受欢迎的存储方式。
二、SharedPreferences是什么
- SharedPreferences是Android平台上一个轻量级的存储类,用来存储少量数据时简单、便捷(如:保存记住密码状态,设置开关状态等)。
- 以key-value(键值对)形式存储数据,可以存储的数据类型为:String、float、int、long、boolean。
- 存储位置在/data/data/<包名>/shared_prefs目录下。
- 保存的数据以XML形式存储(即最终在手机上生成了一个xml文件)。
三、SharedPreferences怎么用
1、写入
step1:获取SharedPreferences对象
step2:获取Editor对象
step3:按键值对形式写入值
step4:提交
获取SharedPreferences的两种方式:
1、调用Context对象的getSharedPreferences()方法
2、调用Activity对象的getPreferences()方法
两种方式的区别:
调用Context对象的getSharedPreferences()方法获得的SharedPreferences对象可以被同一应用程序下的其他组件共享.
调用Activity对象的getPreferences()方法获得的SharedPreferences对象只能在该Activity中使用.
代码示例
//获取SharedPreference对象
SharedPreferences spf = getSharedPreferences("myfile", Context.MODE_PRIVATE);
//获取Editor对象
Editor editor = spf.edit();
//写入信息
editor.putString("name", "罗辑");
editor.putBoolean("vip", true);
editor.putInt("age", 20);
//写入信息完毕后,要提交
editor.commit();
2、读取
step1:获取sharedpreferences对象
step2:按键值对形式取值
代码示例
//从文件中取值
String name = spf.getString("name", "");
Boolean vip = spf.getBoolean("vip", false);
int age = spf.getInt("age", 0);
System.out.println("name:"+name);
System.out.println("vip:"+vip);
System.out.println("age:"+age);