一、SharedPreferences 存储类
SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置,比如Activity状态,Activity暂停时,将此activity的状态保存到SharedPereferences中;当Activity重载,系统回调方法onSaveInstanceState时,再从SharedPreferences中将值取出。
SharedPreferences提供了java常规的Long、Int、String等类型数据的保存接口。 SharedPreferences类似过去Windows系统上的ini配置文件,但是它分为多种权限,可以全局共享访问。
提示最终是以xml方式来保存,整体效率来看不是特别的高,对于常规的轻量级而言比SQLite要好不少,如果真的存储量不大可以考虑自己定义文件格式。xml处理时Dalvik会通过自带底层的本地XML Parser解析,比如XMLpull方式,这样对于内存资源占用比较好。
用法步骤:
1、确定要保存的是什么数据后,写个 SharedPreferences 存储类
2、获取到数据后,调用 SharedPreferences 存储类将数据保存
3、调用 SharedPreferences 存储类将数据取出,并展示出来
SharedPreferences.java类
package com.example.withroadlogistics.until;
import android.content.Context;
import android.content.SharedPreferences;
/**
* Created by Administrator on 2019-11-19
* 保存一些简单的数据根据你要保存的数据创建对应的方法
*/
public class MySharedPreferences {
//创建一个SharedPreferences 类似于创建一个数据库,库名为 data
public static SharedPreferences share(Context context){
SharedPreferences sharedPreferences = context.getSharedPreferences("date", Context.MODE_PRIVATE);
return sharedPreferences;
}
//userid 用户账号
//调用上面的 share(Context context) 方法 获取标识为 "userid" 的数据
public static Object getUserid(Context context){
return share(context).getString("userid",null);
}
//调用上面的 share(Context context) 方法 将数据存入,并标识为 "name"
//使用 commit() 方法保存会给出反应(保存成功或失败)
public static boolean setUserid(String userid, Context context){
SharedPreferences.Editor e = share(context).edit();
e.putString("userid",userid);
Boolean bool = e.commit();
return bool;
}
//pwd 密码
public static String getPswd(Context context){
return share(context).getString("pwd",null);
}
//这里使用的是 apply() 方法保存,将不会有返回值
public static void setPwd(String pwd, Context context){
SharedPreferences.Editor e = share(context).edit();
e.putString("pwd",pwd);
e.apply();
}
/**
* 可以根据需求选择用那种方式保存数据
* (需不需要告诉你有没有保存成功)
*/
}
如何存值:
在事件里加入你要存储的值(以登录为例)代码如下
//验证成功后在 MySharedPreferences类里定义好存取方法后,就可以调用了
//这里将数据保存进去 注意:(userid 我是定义了有返回值的,试试看)
Boolean bool = MySharedPreferences.setUserid(userid, MainActivity.this);
MySharedPreferences.setPwd(pwd, MainActivity.this);
//看看保存成功没
if(bool)
Toast.makeText(MainActivity.this, "保存成功!", Toast.LENGTH_SHORT).show();
else
Toast.makeText(MainActivity.this, "保存失败!", Toast.LENGTH_SHORT).show();
如何取值:
在你需要获取里面的值的页面,代码如下
通过MySharedPreferences类里定义好的存取方法,获取保存在里面的数据
String userid = (String) MySharedPreferences.getUserid(weibosend.this);
String pwd = (String) MySharedPreferences.getPswd(weibosend.this);
这就是SharedPreferences类存取值的方法。