赞
踩
1.在app开发中经常会用到临时存放用户信息的时候,我们一般会用到SharedPreferences,下面给出我经常用的工具类:
SharedData
- package com.antbyte.video.utils.data;
-
- import android.content.Context;
- import android.content.SharedPreferences;
-
-
- import com.antbyte.video.MyApp;
- import com.antbyte.video.constant.Constant;
-
- import java.util.Map;
-
- /**
- * Created by yangjianli on 2017/8/29.
- */
- public class SharedData {
-
- private SharedPreferences mKV;
- private SharedPreferences.Editor mEditor;
- private final static String SHARED_FILE_NAME= Constant.APP_SHARED_FILE_NAME; //共享的文件名称
-
- private static SharedData sharedData;
- public static SharedData getInstance(){
- if(sharedData == null){
- sharedData = new SharedData(MyApp.mApp);
- }
- return sharedData;
- }
-
- /**
- * 构造方法。
- *
- * @param context
- */
- private SharedData(Context context) {
- mKV = context.getSharedPreferences(SHARED_FILE_NAME, Context.MODE_PRIVATE);
- mEditor = mKV.edit();
- }
-
-
- /**
- * 构造方法。
- *
- * @param context
- * @param kvName
- * 键值表名称。
- * @param mode
- * 打开的模式。值为Context.MODE_APPEND, Context.MODE_PRIVATE,
- * Context.WORLD_READABLE, Context.WORLD_WRITEABLE.
- */
- private SharedData(Context context, String kvName, int mode) {
- mKV = context.getSharedPreferences(kvName, mode);
- mEditor = mKV.edit();
- }
-
-
- /**
- * 获取保存着的boolean对象。
- *
- * @param key
- * 键名
- * @param defValue
- * 当不存在时返回的默认值。
- * @return 返回获取到的值,当不存在时返回默认值。
- */
- public boolean getBoolean(String key, boolean defValue) {
- return mKV.getBoolean(key, defValue);
- }
-
- /**
- * 获取保存着的int对象。
- *
- * @param key
- * 键名
- * @param defValue
- * 当不存在时返回的默认值。
- * @return 返回获取到的值,当不存在时返回默认值。
- */
- public int getInt(String key, int defValue) {
- return mKV.getInt(key, defValue);
- }
-
- /**
- * 获取保存着的long对象。
- *
- * @param key
- * 键名
- * @param defValue
- * 当不存在时返回的默认值。
- * @return 返回获取到的值,当不存在时返回默认值。
- */
- public long getLong(String key, long defValue) {
- return mKV.getLong(key, defValue);
- }
-
- /**
- * 获取保存着的float对象。
- *
- * @param key
- * 键名
- * @param defValue
- * 当不存在时返回的默认值。
- * @return 返回获取到的值,当不存在时返回默认值。
- */
- public float getFloat(String key, float defValue) {
- return mKV.getFloat(key, defValue);
- }
-
- /**
- * 获取保存着的String对象。
- *
- * @param key
- * 键名
- * @param defValue
- * 当不存在时返回的默认值。
- * @return 返回获取到的值,当不存在时返回默认值。
- */
- public String getString(String key, String defValue) {
- return mKV.getString(key, defValue);
- }
-
- /**
- * 获取所有键值对。
- *
- * @return 获取到的所胡键值对。
- */
- public Map<String, ?> getAll() {
- return mKV.getAll();
- }
-
- /**
- * 设置一个键值对,它将在{@linkplain #commit()}被调用时保存。<br/>
- * 注意:当保存的value不是boolean, byte(会被转换成int保存),int, long, float,
- * String等类型时将调用它的toString()方法进行值的保存。
- *
- * @param key
- * 键名称。
- * @param value
- * 值。
- * @return 引用的KV对象。
- */
- public SharedData put(String key, Object value) {
- if (value instanceof Boolean) {
- mEditor.putBoolean(key, (Boolean) value);
- } else if (value instanceof Integer || value instanceof Byte) {
- mEditor.putInt(key, (Integer) value);
- } else if (value instanceof Long) {
- mEditor.putLong(key, (Long) value);
- } else if (value instanceof Float) {
- mEditor.putFloat(key, (Float) value);
- } else if (value instanceof String) {
- mEditor.putString(key, (String) value);
- } else {
- mEditor.putString(key, value.toString());
- }
- return this;
- }
-
- /**
- * 移除键值对。
- *
- * @param key
- * 要移除的键名称。
- * @return 引用的KV对象。
- */
- public SharedData remove(String key) {
- mEditor.remove(key);
- return this;
- }
-
- /**
- * 清除所有键值对。
- *
- * @return 引用的KV对象。
- */
- public SharedData clear() {
- mEditor.clear();
- return this;
- }
-
- /**
- * 是否包含某个键。
- *
- * @param key
- * 查询的键名称。
- * @return 当且仅当包含该键时返回true, 否则返回false.
- */
- public boolean contains(String key) {
- return mKV.contains(key);
- }
-
- /**
- * 返回是否提交成功。
- *
- * @return 当且仅当提交成功时返回true, 否则返回false.
- */
- public boolean commit() {
- return mEditor.commit();
- }
- }
2.常用到的方法示例
保存一个数据:
SharedData.getInstance().put("key", "value").commit();
获取保存的数据
SharedData.getInstance().getString("key", "");
注意:获取数据的时候类型要和保存时的类型保持一致。
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。