Android 实用的SharedPreferences工具类
2016-12-27 14:54
429 查看
后续升级版:SharedPreferences自定义XML文件保存位置
安卓的SharedPreferences类可以很简单的进行XML的本地文件存取工作,本人针对此类进行了相应的封装,代码如下:
原有的SharedPreferences使用get的时候如果取空值就会报错退出,这个类解决掉了这个问题,总共就是三个功能,初始化、存、取,不足之处望以指正。
安卓的SharedPreferences类可以很简单的进行XML的本地文件存取工作,本人针对此类进行了相应的封装,代码如下:
import android.content.Context; import android.content.ContextWrapper; import android.content.SharedPreferences; import android.util.Log; import java.io.File; import java.lang.reflect.Field; /** * XML配置信息读写类 * Created by Admin on 2016/11/28. */ public class SharedPreferencesUtil { //存储的sharedpreferences文件名 private static final String FILE_NAME = "setting"; /** * 保存数据到文件 * * @param context * @param key * @param data */ public static void saveData(Context context, String key, Object data) { try { String type = data.getClass().getSimpleName(); SharedPreferences sharedPreferences = context .getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPreferences.edit(); if ("Integer".equals(type)) { editor.putInt(key, (Integer) data); } else if ("Boolean".equals(type)) { editor.putBoolean(key, (Boolean) data); } else if ("String".equals(type)) { editor.putString(key, (String) data); } else if ("Float".equals(type)) { editor.putFloat(key, (Float) data); } else if ("Long".equals(type)) { editor.putLong(key, (Long) data); } editor.commit(); } catch (Exception e) { Log.e("SharedPreferencesUtil", "XML配置文件保存操作异常" + e.getMessage()); } } /** * 从文件中读取数据 * * @param context * @param key * @param defValue * @return */ public static Object getData(Context context, String key, Object defValue) { try { String type = defValue.getClass().getSimpleName(); SharedPreferences sharedPreferences = context.getSharedPreferences (FILE_NAME, Context.MODE_PRIVATE); //defValue为为默认值,如果当前获取不到数据就返回它 if ("Integer".equals(type)) { return sharedPreferences.getInt(key, (Integer) defValue); } else if ("Boolean".equals(type)) { return sharedPreferences.getBoolean(key, (Boolean) defValue); } else if ("String".equals(type)) { return sharedPreferences.getString(key, (String) defValue); } else if ("Float".equals(type)) { return sharedPreferences.getFloat(key, (Float) defValue); } else if ("Long".equals(type)) { return sharedPreferences.getLong(key, (Long) defValue); } return null; } catch (Exception e) { return defValue; } } /** * 初始化数据到文件 * 有就跳过,没有就新增 * @param context * @param key * @param data */ public static void initialData(Context context, String key, Object data) { try { if (getData(context, key, "HasNoInitial").toString().equals("HasNoInitial")) { saveData(context, key, data); } } catch (Exception e) { Log.e("SharedPreferencesUtil", "XML配置文件初始化操作异常" + e.getMessage()); //CommFunc.ToastPromptMsg("XML配置文件初始化操作失败"); } } }
原有的SharedPreferences使用get的时候如果取空值就会报错退出,这个类解决掉了这个问题,总共就是三个功能,初始化、存、取,不足之处望以指正。
相关文章推荐
- Android开发实用工具类之数据校验类
- Android实用的SQLite数据库工具类
- android开发的实用工具类
- Android实用的Toast工具类封装
- 超实用的android网络工具类
- Android实用工具类-GrallyAndPhotoUtils图片处理工具
- Android工具类—Android Studio实用插件
- android实用工具类分享(获取内存/检查网络/屏幕高度/手机分辨率)
- Android封装的http请求实用工具类
- Android开发中实用工具之--Log工具类
- [置顶] Android开发之封装log打印日志的工具类,实用logutils详细代码
- Android开发实用工具类之Log类
- Android开发实用工具类之数据校验类
- Android实用工具类方法总结(一)
- Android实用工具类
- 推荐几个实用的Android工具类
- 非常实用的Android图片工具类
- Android实用工具类——ListView动态显示条目数目
- Android开发实用工具类之数据校验类
- android 实用工具类-手机存储