用单例封装 SharedPreferences
来源:互联网 发布:软件工程项目选题 编辑:程序博客网 时间:2024/06/13 19:13
自己封装的 SharedPreferences,很简单的封装,直接上代码
public class SPManager { private static final String ACCOUNT = "account"; private static final String PASSWORD = "password"; private static final String USER_ID = "user_id"; private static final String USER_NAME = "user_name"; private static final String LAST_DAY = "last_day"; private static Context mContext; private SharedPreferences sp; private SharedPreferences.Editor editor; private SPManager() { sp = PreferenceManager.getDefaultSharedPreferences(mContext); editor = sp.edit(); } public static SPManager getInstance(Context context) { //使用 ApplicationContext 防止内存泄漏 mContext = context.getApplicationContext(); return Singer.sputils; } //使用静态内部类的方式创建单例 private static class Singer { static SPManager sputils = new SPManager(); } //封装 SharedPreferences 的各种 put 方法 //返回 this ,方便链式调用 private SPManager put(String key, Object value) { if (value instanceof String) { editor.putString(key, (String) value); } else if (value instanceof Integer) { editor.putInt(key, (Integer) value); } else if (value instanceof Boolean) { editor.putBoolean(key, (Boolean) value); } else if (value instanceof Long) { editor.putLong(key, (Long) value); } else if (value instanceof Float) { editor.putFloat(key, (Float) value); } return this; } //封装 SharedPreferences 的各种 get 方法 //使用泛型,调用时不用再强制转换 private <T> T get(String key, Object defValue) { if (defValue instanceof String) { return (T) sp.getString(key, (String) defValue); } else if (defValue instanceof Integer) { return (T) Integer.valueOf(sp.getInt(key, (Integer) defValue)); } else if (defValue instanceof Boolean) { return (T) Boolean.valueOf(sp.getBoolean(key, (Boolean) defValue)); } else if (defValue instanceof Long) { return (T) Long.valueOf(sp.getLong(key, (Long) defValue)); } else if (defValue instanceof Float) { return (T) Float.valueOf(sp.getFloat(key, (Float) defValue)); } return null; } //以下几个方法是写好的固定的要保存和获取的数据,方便直接调用 public String getAccount() { return get(ACCOUNT, ""); } public SPManager putAccount(String account) { return put(ACCOUNT, account); } public String getPassword() { return get(PASSWORD, ""); } public SPManager putPassword(String password) { return put(PASSWORD, password); } public int getUserId() { return get(USER_ID, 0); } public SPManager putUserId(int userId) { return put(USER_ID, userId); } public String getUserName() { return get(USER_NAME, ""); } public SPManager putUserName(String userName) { return put(USER_NAME, userName); } public int getLastDate() { return get(LAST_DAY, -1); } public SPManager putLastDate(int lastDate) { return put(LAST_DAY, lastDate); } public void apply() { editor.apply(); }}
阅读全文
0 0
- 用单例封装 SharedPreferences
- SharedPreferences封装
- SharedPreferences封装
- 封装 SharedPreferences
- SharedPreferences封装
- SharedPreferences封装
- SharedPreferences封装
- 关于SharedPreferences的封装
- SharedPreferences工具类封装
- SharedPreferences介绍与封装
- SharedPreferences封装类SPUtils
- SharedPreferences封装及使用
- sharedpreferences的封装
- SharedPreferences封装类SPUtils
- SharedPreferences封装类SPUtils
- sharedPreferences工具类封装
- Android SharedPreferences 简单封装
- SharedPreferences的简单封装
- 在线聊天系统,关键代码,(jquery.ajax)
- HMM之维特比算法
- zabbix安装配置
- Apache+Tomcat实现负载均衡及集群(session同步)--三、动静分离(1)使用mod_jk
- HardFault_Handler问题查找方法
- 用单例封装 SharedPreferences
- 双端队列
- HDU 4344 Mark the Rope Pollard_Rho大数分解
- Integer比较大小问题
- SeekBar实现音量设置
- java复习——this instanceof super关键字的用法
- iOS开发探索-图片压缩处理
- 【BZOJ】2738 矩阵乘法 整体二分+树状数组
- AOP execution表达式