使用SharedPreferences(保存用户偏好参数)保存数据, 当我们的应用想要保存用户的一些偏好参数,比如是否自动登陆,是否记住账号密码,是否在Wifi下才能 联网等相关信息,如果使用数据库的话,显得有点大材小用了!我们把上面这些配置信息称为用户的偏好 设置,就是用户偏好的设置,而这些配置信息通常是保存在特定的文件中!而在Android中我们通常使用 一个轻量级的存储类——SharedPreferences来保存用户偏好的参数!SharedPreferences也是使用xml文件, 使用键-值的形式来存储数据;我们只需要调用SharedPreferences的getXxx(name), 就可以根据键获得对应的值!使用起来很方便!
封装工具类,代码如下:
public class ShaPreUtil {
private SharedPreferences preferences;
public ShaPreUtil(Context context) {
preferences = context.getSharedPreferences("app", Context.MODE_PRIVATE);
}
//保存数据
public <T> void set(String key, T value) {
SharedPreferences.Editor editor = preferences.edit();
if (value instanceof String) {
editor.putString(key, String.valueOf(value));
}
if (value instanceof Boolean) {
editor.putBoolean(key, (Boolean) value);
}
if (value instanceof Integer) {
editor.putInt(key, (Integer) value);
}
editor.apply();
}
//取数据
public String getString(String key) {
return preferences.getString(key, "-1");
}
public boolean getBoolean(String key) {
return preferences.getBoolean(key, true);
}
public int getInt(String key) {
return preferences.getInt(key, -1);
}
public void remove(String key) {
SharedPreferences.Editor editor = preferences.edit();
editor.remove(key);
editor.apply();
}
}
工具类使用
//初始化shaPreUtil
ShaPreUtil shaPreUtil = new ShaPreUtil(getActivity());
//存数据
shaPreUtil.set("name", "sc");
shaPreUtil.set("password", "123456");
//取数据
String name = shaPreUtil.getString("name");
Toast.makeText(getActivity(), "信息已写入SharedPreference中" + name, Toast.LENGTH_SHORT).show();