AI智能
改变未来

android开发SP工具类

package com.szyc.anantraveldriver.utils;

import android.content.Context;
import android.content.SharedPreferences;
import android.text.TextUtils;

import com.google.gson.Gson;
import com.szyc.anantraveldriver.bean.GetAppVersionBean;
import com.szyc.anantraveldriver.bean.UseInfoBean;
import com.szyc.anantraveldriver.bean.VersionBean;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Map;

/**

  • 项目名称:SilentEagle

  • 类描述:保存数据的通用类

  • 创建人:Administrator

  • 创建时间:2016/4/18 10:27

  • 修改人:Administrator

  • 修改时间:2016/4/18 10:27

  • 修改备注:
    /
    public class SPUtils {
    public SPUtils() {
    / cannot be instantiated */
    throw new UnsupportedOperationException(“cannot be instantiated”);
    }

    /**

    保存在手机里面的文件名
    */
    public static final String FILE_NAME = “anancar_driver_data”;

/**

  • 保存数据的方法,我们需要拿到保存数据的具体类型,然后根据类型调用不同的保存方法

  • @param context

  • @param key

  • @param object
    */
    public static void put(Context context, String key, Object object) {

    SharedPreferences sp = context.getSharedPreferences(FILE_NAME,
    Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = sp.edit();

    if (object instanceof String) {
    editor.putString(key, (String) object);
    } else if (object instanceof Integer) {
    editor.putInt(key, (Integer) object);
    } else if (object instanceof Boolean) {
    editor.putBoolean(key, (Boolean) object);
    } else if (object instanceof Float) {
    editor.putFloat(key, (Float) object);
    } else if (object instanceof Long) {
    editor.putLong(key, (Long) object);
    } else {
    editor.putString(key, object.toString());
    }

    SharedPreferencesCompat.apply(editor);
    }

/**

  • 得到保存数据的方法,我们根据默认值得到保存的数据的具体类型,然后调用相对于的方法获取值

  • @param context

  • @param key

  • @param defaultObject

  • @return
    */
    public static Object get(Context context, String key, Object defaultObject) {
    SharedPreferences sp = context.getSharedPreferences(FILE_NAME,
    Context.MODE_PRIVATE);

    if (defaultObject instanceof String) {
    return sp.getString(key, (String) defaultObject);
    } else if (defaultObject instanceof Integer) {
    return sp.getInt(key, (Integer) defaultObject);
    } else if (defaultObject instanceof Boolean) {
    return sp.getBoolean(key, (Boolean) defaultObject);
    } else if (defaultObject instanceof Float) {
    return sp.getFloat(key, (Float) defaultObject);
    } else if (defaultObject instanceof Long) {
    return sp.getLong(key, (Long) defaultObject);
    }
    return defaultObject;
    }

/**

  • 移除某个key值已经对应的值
  • @param context
  • @param key
    */
    public static void remove(Context context, String key) {
    SharedPreferences sp = context.getSharedPreferences(FILE_NAME,
    Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = sp.edit();
    editor.remove(key);
    SharedPreferencesCompat.apply(editor);
    }

/**

  • 清除所有数据
  • @param context
    */
    public static void clear(Context context) {
    SharedPreferences sp = context.getSharedPreferences(FILE_NAME,
    Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = sp.edit();
    editor.clear();
    SharedPreferencesCompat.apply(editor);
    }

/**

  • 查询某个key是否已经存在
  • @param context
  • @param key
  • @return
    */
    public static boolean contains(Context context, String key) {
    SharedPreferences sp = context.getSharedPreferences(FILE_NAME,
    Context.MODE_PRIVATE);
    return sp.contains(key);
    }

/**

  • 返回所有的键值对
  • @param context
  • @return
    */
    public static Map<String, ?> getAll(Context context) {
    SharedPreferences sp = context.getSharedPreferences(FILE_NAME,
    Context.MODE_PRIVATE);
    return sp.getAll();
    }

/**

  • 创建一个解决SharedPreferencesCompat.apply方法的一个兼容类

  • @author zhy
    */
    private static class SharedPreferencesCompat {
    private static final Method sApplyMethod = findApplyMethod();

    /**

    反射查找apply的方法

  • @return
    */
    @SuppressWarnings({“unchecked”, “rawtypes”})
    private static Method findApplyMethod() {
    try {
    Class clz = SharedPreferences.Editor.class;
    return clz.getMethod(“apply”);
    } catch (NoSuchMethodException e) {
    e.printStackTrace();
    }

    return null;
    }

/**

  • 如果找到则使用apply执行,否则使用commit
  • @param editor
    */
    public static void apply(SharedPreferences.Editor editor) {
    try {
    if (sApplyMethod != null) {
    sApplyMethod.invoke(editor);
    return;
    }
    } catch (IllegalAccessException e) {
    e.printStackTrace();
    } catch (InvocationTargetException e) {
    e.printStackTrace();
    }
    editor.commit();
    }
    }

/**

  • 保存用户数据
  • @param context 上下文
  • @param jsonUser 用户实体类转成json字符串
    */
    public static void saveUser(Context context,String jsonUser){
    put(context, “userinfo”, jsonUser);
    }

/**

  • 获取本地保存的用户数据(主要保存)
  • @param context 上下文
  • @return 用户实体类
    */
    public static UseInfoBean getUser(Context context){
    String useStr=get(context, “userinfo”, “”).toString();
    if(TextUtils.isEmpty(useStr)){
    return new UseInfoBean();
    }else{
    return new Gson().fromJson(useStr, UseInfoBean.class);
    }
    }

/**
*

  • @param context
  • @param :保存签退状态:true:签退了。false:没签退; 默认 false,没签退
    */
    public static void putLoginOutState(Context context,boolean loginState){ //renhaijun add
    put(context, “LoginOutState”, loginState); // 只要调用这个方法,则 表明 已经 点击过签退了。
    }

/**
*

  • @param context
  • @return :签退状态:true:签退了。false:没签退; 默认 false,没签退.
    */
    public static boolean getLoginOutState(Context context){ //renhaijun add
    boolean loginOutState = (boolean) get(context, “LoginOutState”, false);
    return loginOutState;
    }

/**

  • 保存手机号.在静默登录时,通过手机号 是否为“” 来判断 是否退出登录了。
  • @param context
  • @param phoneStr
    */
    public static void putPhone(Context context,String phoneStr){ //renhaijun add
    put(context,“phoneNumber”,phoneStr);
    }

/**

  • 获取手机号.在静默登录时,通过手机号 是否为“” 来判断 是否退出登录了。
  • @param context
  • @return
    */
    public static String getPhone(Context context){ //renhaijun add
    String phone = (String) get(context, “phoneNumber” , “”);
    return phone;
    }

/**

  • 保存密码
  • @param context
  • @param pwdStr
    */
    public static void putPassword(Context context, String pwdStr){ //renhaijun add
    put(context,“password” , pwdStr);
    }

/**

  • 获取密码
  • @param context
  • @return
    */
    public static String getPassword(Context context){ //renhaijun add
    String password = (String) get(context,“password”,\”\”);
    return password;
    }
    //上班之前是否认证人脸
    public static void putIsRz(Context context, String pwdStr){ //renhaijun add
    put(context,“isrz” , pwdStr);
    }

/**

  • 获取密码
  • @param context
  • @return
    /
    public static String getIsRz(Context context){ //renhaijun add
    String isrz = (String) get(context,“isrz”,“2”);
    return isrz;
    }
    /*
  • 保存头像链接
  • @param context
  • @param headUrl
    */
    public static void putHeadUrl(Context context, String headUrl){ //renhaijun add
    put(context,“headUrl” , headUrl);
    }

public static String getHeadUrl(Context context){ //renhaijun add
String headUrl = (String) get(context,“headUrl”,\”\”);
return headUrl;
}

/**

  • 保存 广告页 链接
  • @param context
  • @param headUrl
    /
    public static void putADUrl(Context context, String headUrl){ //renhaijun add
    put(context,“ADUrl” , headUrl);
    }
    /*
  • 获取 广告页 链接
  • @param context
  • @param
    */
    public static String getADUrl(Context context){ //renhaijun add
    String headUrl = (String) get(context,“ADUrl”,\”\”);
    return headUrl;
    }

/**

  • 保存版本更新信息 renhaijun add
  • @param context 上下文
  • @param jsonUser 用户实体类转成json字符串
    */
    public static void saveCommonInfo(Context context, String jsonUser) {
    if (!TextUtils.isEmpty(jsonUser)) {
    put(context, “commoninfo”, jsonUser);
    }
    }

/**

  • 保存版本更新信息 renhaijun add
  • @param context 上下文
  • @return 用户实体类
    */
    public static VersionBean getCommonInfo(Context context) {
    String useStr = get(context, “commoninfo”, “”).toString();
    if (TextUtils.isEmpty(useStr)) {
    return new VersionBean();
    } else {
    return new Gson().fromJson(useStr, VersionBean.class);
    }
    }

/**

  • renhaijun add 保存修改后的性别
  • @param context
  • @param sex
    */
    public static void saveSex(Context context,String sex){
    if (!TextUtils.isEmpty(sex)) {
    put(context, “sex”, sex);
    }
    }

/**

  • renhaijun add
  • 获取保存的修改后的性别
  • @param context
  • @return
    */
    public static String getSex(Context context){
    String sex = get(context,“sex”,\”\”).toString();
    return sex;
    }

/**

  • renhaijun add 保存客服电话
  • @param context
  • @param phone
    */
    public static void saveContactPhone(Context context, String phone){
    if (!TextUtils.isEmpty(phone)){
    put(context,“ContactPhone”, phone);
    }
    }

/**

  • renhaijun add 获取客服电话
  • @param context
  • @return
    */
    public static String getContactPhone(Context context){
    String phone = get(context,“ContactPhone”,\”\”).toString();
    return phone;
    }

/**

  • 保存首次获取验证码的时间 renhaijun add
  • @param context
  • @param firstCurrentTime
    */
    public static void saveFirstCodeTime(Context context, String firstCurrentTime){
    put(context,“saveFirstCodeTime”, firstCurrentTime);
    }

/**

  • 保存首次获取验证码的时间 renhaijun add
  • @param context
  • @param
    */
    public static String getFirstCodeTime(Context context ){
    String saveFirstCodeTime = (String) get(context,“saveFirstCodeTime”,\”\”);
    return saveFirstCodeTime;
    }

/**

  • 保存 token renhaijun add
  • @param context
  • @param token
    */
    public static void putToken(Context context, String token){
    put(context,“token”, token);
    }

/**

  • 保存 token renhaijun add
  • @param context
  • @param
    */
    public static String getToken(Context context ){
    String token = (String) get(context,“token”,\”\”);
    return token;
    }

/**

  • 保存 app版本管理数据 renhaijun add
  • @param context 上下文
  • @param jsonUser 用户实体类转成json字符串
    */
    public static void putAppVersionBean(Context context,String jsonUser){
    put(context, “GetAppVersionBean”, jsonUser);
    }

/**

  • 获取 app版本管理数据 renhaijun add
  • @param context 上下文
  • @return 用户实体类
    */
    public static GetAppVersionBean getAppVersionBean(Context context){
    String useStr=get(context, “GetAppVersionBean”, “”).toString();
    if(TextUtils.isEmpty(useStr)){
    return new GetAppVersionBean();
    }else{
    return new Gson().fromJson(useStr, GetAppVersionBean.class);
    }
    }

/**

  • 保存是否 选择了智能wifi下载 版本更新 renhaijun add
  • @param context
  • @param wifidownload true:wifi智能下载。false:非wifi智能下载
    */
    public static void putWifiDownload(Context context, boolean wifidownload){
    put(context,“wifiDownload”, wifidownload);
    }

/**

  • 获取是否 选择了智能wifi下载 版本更新 renhaijun add
  • @param context
    */
    public static boolean getWifiDownload(Context context){
    boolean wifidownload = (boolean) get(context,“wifiDownload”,false);
    return wifidownload;
    }
    }
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » android开发SP工具类