SharePerference 使用详解
极力推荐文章:欢迎收藏
Android 干货分享
阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android
本篇文章主要介绍 Android
开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:
- SharedPreferences的使用方法
- SharedPreferences保存数据的方法
- SharedPreferences读取数据的方法
- 总结SharedPreferencesUtils 封装类使用方法
- 小结
SharedPreferences
是Android
的一个接口类,是Android
数据存储(保存内部)的一种方法。主要以*.xml
的形式保存在Android /data/data/com.***包名/shared_prefs
下,SharedPreferences
类提供了一个通用框架,以便用户能够保存和检索原始数据类型的键值对,原始数据类型如下:Boolean
,Int
,Float
,Long
,String
。
1. SharedPreferences的使用方法
SharedPreferences
使用方法如下:
- 创建保存数据的
xml
文件 - 使用
Editor
向xml
文件中保存数据 commit()
保存数据xml
保存地方
/data/data/com.***包名/shared_prefs
2. SharedPreferences 保存数据的方法
主要使用 putBoolean()
和 putString()
、putInt()
等方法添加值。
3. SharedPreferences读取数据的方法
主要使用 getBoolean()
和 getString()
、getInt()
等 获取保存的数据
4. 总结SharePerference Utils 封装类使用方法
移除SharePerference
保存的值
private static SharedPreferences sp;
private static String SPXMLNAME = "sp_config";
/**
* @param ctx
* 上下文环境
* @param key
* 要从config.xml移除节点的name的名称
*/
public static void removeKey(Context ctx, String key) {
if (sp == null) {
sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE);
}
sp.edit().remove(key).commit();
}
保存,获取 Boolean 类型值方法
// 1,存储boolean变量方法
public static void putBoolean(Context ctx, String key, boolean value) {
// name存储文件名称
if (sp == null) {
sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE);
}
sp.edit().putBoolean(key, value).commit();
}
// 2,读取boolean变量方法
public static boolean getBoolean(Context ctx, String key, boolean defValue) {
// name存储文件名称
if (sp == null) {
sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE);
}
return sp.getBoolean(key, defValue);
}
保存,获取 String
类型值方法
public static void putString(Context ctx, String key, String value) {
// name存储文件名称
if (sp == null) {
sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE);
}
sp.edit().putString(key, value).commit();
}
public static String getString(Context ctx, String key, String defValue) {
// name存储文件名称
if (sp == null) {
sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE);
}
return sp.getString(key, defValue);
}
保存,获取Int
类型值方法
//
public static void putInt(Context ctx, String key, int value) {
// name存储文件名称
if (sp == null) {
sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE);
}
sp.edit().putInt(key, value).commit();
}
public static int getInt(Context ctx, String key, int defValue) {
// name存储文件名称
if (sp == null) {
sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE);
}
return sp.getInt(key, defValue);
}
SharePerferenceUtils
package com.programandroid.Utils;
import android.content.Context;
import android.content.SharedPreferences;
/*
* SharePerferenceUtils.java
*
* Created on: 2017-9-24
* Author: wangjie
*
* Welcome attention to weixin public number get more info
*
* WeiXin Public Number : ProgramAndroid
* 微信公众号 :程序员Android
*
*/
public class SharePerferenceUtils {
private static SharedPreferences sp;
private static String SPXMLNAME = "sp_config";
/**
* @param ctx
* 上下文环境
* @param key
* 要从config.xml移除节点的name的名称
*/
public static void removeKey(Context ctx, String key) {
if (sp == null) {
sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE);
}
sp.edit().remove(key).commit();
}
// 1,存储boolean变量方法
public static void putBoolean(Context ctx, String key, boolean value) {
// name存储文件名称
if (sp == null) {
sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE);
}
sp.edit().putBoolean(key, value).commit();
}
// 2,读取boolean变量方法
public static boolean getBoolean(Context ctx, String key, boolean defValue) {
// name存储文件名称
if (sp == null) {
sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE);
}
return sp.getBoolean(key, defValue);
}
public static void putString(Context ctx, String key, String value) {
// name存储文件名称
if (sp == null) {
sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE);
}
sp.edit().putString(key, value).commit();
}
public static String getString(Context ctx, String key, String defValue) {
// name存储文件名称
if (sp == null) {
sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE);
}
return sp.getString(key, defValue);
}
//
public static void putInt(Context ctx, String key, int value) {
// name存储文件名称
if (sp == null) {
sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE);
}
sp.edit().putInt(key, value).commit();
}
public static int getInt(Context ctx, String key, int defValue) {
// name存储文件名称
if (sp == null) {
sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE);
}
return sp.getInt(key, defValue);
}
}
Activity 类中使用方法如下:
1. 保存数据
保存数据调用方法如下:
SharePerferenceUtils.putInt(getApplicationContext(), "int_key", 1);
2. 获取数据
获取数据调用方法如下:
SharePerferenceUtils.getString(getApplicationContext(), "string_key", "default_values");
至此 SharedPreferences
的使用方法以基本完成。
5. 小结
SharedPreferences
保存在app
内部(/data/data/com.***包名/shared_prefs)
,当手动清除APK
数据的时候,保存的数据会被清除掉
至此,本篇已结束,如有不对的地方,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!