当前位置:   article > 正文

android使用SharedPreferences实现基本信息存储工具类_appsharedpreferences 工具类

appsharedpreferences 工具类

1.在app开发中经常会用到临时存放用户信息的时候,我们一般会用到SharedPreferences,下面给出我经常用的工具类:

SharedData
  1. package com.antbyte.video.utils.data;
  2. import android.content.Context;
  3. import android.content.SharedPreferences;
  4. import com.antbyte.video.MyApp;
  5. import com.antbyte.video.constant.Constant;
  6. import java.util.Map;
  7. /**
  8. * Created by yangjianli on 2017/8/29.
  9. */
  10. public class SharedData {
  11. private SharedPreferences mKV;
  12. private SharedPreferences.Editor mEditor;
  13. private final static String SHARED_FILE_NAME= Constant.APP_SHARED_FILE_NAME; //共享的文件名称
  14. private static SharedData sharedData;
  15. public static SharedData getInstance(){
  16. if(sharedData == null){
  17. sharedData = new SharedData(MyApp.mApp);
  18. }
  19. return sharedData;
  20. }
  21. /**
  22. * 构造方法。
  23. *
  24. * @param context
  25. */
  26. private SharedData(Context context) {
  27. mKV = context.getSharedPreferences(SHARED_FILE_NAME, Context.MODE_PRIVATE);
  28. mEditor = mKV.edit();
  29. }
  30. /**
  31. * 构造方法。
  32. *
  33. * @param context
  34. * @param kvName
  35. * 键值表名称。
  36. * @param mode
  37. * 打开的模式。值为Context.MODE_APPEND, Context.MODE_PRIVATE,
  38. * Context.WORLD_READABLE, Context.WORLD_WRITEABLE.
  39. */
  40. private SharedData(Context context, String kvName, int mode) {
  41. mKV = context.getSharedPreferences(kvName, mode);
  42. mEditor = mKV.edit();
  43. }
  44. /**
  45. * 获取保存着的boolean对象。
  46. *
  47. * @param key
  48. * 键名
  49. * @param defValue
  50. * 当不存在时返回的默认值。
  51. * @return 返回获取到的值,当不存在时返回默认值。
  52. */
  53. public boolean getBoolean(String key, boolean defValue) {
  54. return mKV.getBoolean(key, defValue);
  55. }
  56. /**
  57. * 获取保存着的int对象。
  58. *
  59. * @param key
  60. * 键名
  61. * @param defValue
  62. * 当不存在时返回的默认值。
  63. * @return 返回获取到的值,当不存在时返回默认值。
  64. */
  65. public int getInt(String key, int defValue) {
  66. return mKV.getInt(key, defValue);
  67. }
  68. /**
  69. * 获取保存着的long对象。
  70. *
  71. * @param key
  72. * 键名
  73. * @param defValue
  74. * 当不存在时返回的默认值。
  75. * @return 返回获取到的值,当不存在时返回默认值。
  76. */
  77. public long getLong(String key, long defValue) {
  78. return mKV.getLong(key, defValue);
  79. }
  80. /**
  81. * 获取保存着的float对象。
  82. *
  83. * @param key
  84. * 键名
  85. * @param defValue
  86. * 当不存在时返回的默认值。
  87. * @return 返回获取到的值,当不存在时返回默认值。
  88. */
  89. public float getFloat(String key, float defValue) {
  90. return mKV.getFloat(key, defValue);
  91. }
  92. /**
  93. * 获取保存着的String对象。
  94. *
  95. * @param key
  96. * 键名
  97. * @param defValue
  98. * 当不存在时返回的默认值。
  99. * @return 返回获取到的值,当不存在时返回默认值。
  100. */
  101. public String getString(String key, String defValue) {
  102. return mKV.getString(key, defValue);
  103. }
  104. /**
  105. * 获取所有键值对。
  106. *
  107. * @return 获取到的所胡键值对。
  108. */
  109. public Map<String, ?> getAll() {
  110. return mKV.getAll();
  111. }
  112. /**
  113. * 设置一个键值对,它将在{@linkplain #commit()}被调用时保存。<br/>
  114. * 注意:当保存的value不是boolean, byte(会被转换成int保存),int, long, float,
  115. * String等类型时将调用它的toString()方法进行值的保存。
  116. *
  117. * @param key
  118. * 键名称。
  119. * @param value
  120. * 值。
  121. * @return 引用的KV对象。
  122. */
  123. public SharedData put(String key, Object value) {
  124. if (value instanceof Boolean) {
  125. mEditor.putBoolean(key, (Boolean) value);
  126. } else if (value instanceof Integer || value instanceof Byte) {
  127. mEditor.putInt(key, (Integer) value);
  128. } else if (value instanceof Long) {
  129. mEditor.putLong(key, (Long) value);
  130. } else if (value instanceof Float) {
  131. mEditor.putFloat(key, (Float) value);
  132. } else if (value instanceof String) {
  133. mEditor.putString(key, (String) value);
  134. } else {
  135. mEditor.putString(key, value.toString());
  136. }
  137. return this;
  138. }
  139. /**
  140. * 移除键值对。
  141. *
  142. * @param key
  143. * 要移除的键名称。
  144. * @return 引用的KV对象。
  145. */
  146. public SharedData remove(String key) {
  147. mEditor.remove(key);
  148. return this;
  149. }
  150. /**
  151. * 清除所有键值对。
  152. *
  153. * @return 引用的KV对象。
  154. */
  155. public SharedData clear() {
  156. mEditor.clear();
  157. return this;
  158. }
  159. /**
  160. * 是否包含某个键。
  161. *
  162. * @param key
  163. * 查询的键名称。
  164. * @return 当且仅当包含该键时返回true, 否则返回false.
  165. */
  166. public boolean contains(String key) {
  167. return mKV.contains(key);
  168. }
  169. /**
  170. * 返回是否提交成功。
  171. *
  172. * @return 当且仅当提交成功时返回true, 否则返回false.
  173. */
  174. public boolean commit() {
  175. return mEditor.commit();
  176. }
  177. }

2.常用到的方法示例

保存一个数据:

SharedData.getInstance().put("key", "value").commit();

获取保存的数据

SharedData.getInstance().getString("key", "");

注意:获取数据的时候类型要和保存时的类型保持一致。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/319265
推荐阅读
相关标签
  

闽ICP备14008679号