Android中使用 SharedPreferences
学习自:百度
Overview
Android 中的 SharedPreferences 有什么用呢。
在我们退出程序是如果我们想要保存数据,那么我们就可以用它。但是不推荐经常使用它。
SharedPreferences 帮助类
我们直接看一下源码:
package com.example.testandroid.bases;
import android.content.Context;
import android.content.SharedPreferences;
public class SPUtil {
private SharedPreferences preferences;
private SharedPreferences.Editor editor;
public SPUtil(Context context, String fileName) {
preferences = context.getSharedPreferences(fileName, context.MODE_PRIVATE);
editor = preferences.edit();
}
public void putString(String key, String value) {
editor.putString(key, value);
editor.commit();
}
public void putBoolean(String key, boolean value) {
editor.putBoolean(key, value);
editor.commit();
}
public void putFloat(String key, float value) {
editor.putFloat(key, value);
editor.commit();
}
public void putInt(String key, int value) {
editor.putInt(key, value);
editor.commit();
}
public void putLong(String key, long value) {
editor.putLong(key, value);
editor.commit();
}
/**
* 清空SP里所以数据
*/
public void clear() {
editor.clear();
editor.commit();
}
/**
* 删除SP里指定key对应的数据项 * @param key
*/
public void remove(String key) {
editor.remove(key);
editor.commit();
}
/**
* 获取SP数据里指定key对应的value。如果key不存在,则返回默认值defValue。 * @param key * @param defValue * @return
*/
public String getString(String key, String defValue) {
return preferences.getString(key, defValue);
}
public boolean getBoolean(String key, boolean defValue) {
return preferences.getBoolean(key, defValue);
}
public float getFloat(String key, float defValue) {
return preferences.getFloat(key, defValue);
}
public int getInt(String key, int defValue) {
return preferences.getInt(key, defValue);
}
public long getLong(String key, long defValue) {
return preferences.getLong(key, defValue);
}
/**
* 判断SP是否包含特定key的数据 * @param key * @return
*/
public boolean contains(String key) {
return preferences.contains(key);
}
}
这样我们的帮助类就完成了。
然后我们来看一下:
这边一共分为了 数据写入和数据读取。
这些都比较的简单,不多说。
如何去使用它:
这边我们就用一个小实例去探究一下:
需求:实现天气实时显示的功能,并可以设置地区。
如何去显示天气现在就不说了。
让我们看一下如何去保存用户上次选择的实时天气地区。
SPUtil spUtil = new SPUtil(mcontext, "weather_location");
spUtil.putString("location", location_code);
只需要两行简简单单的代码我们就可以实现我们的保存地区的功能了。
但是这个仅仅只是将我们的数据是保存,那我们该如何去读取他了???
String WeatherData = HttpWeatherString(spUtil.getString("location", "").length() == 0 ? "suzhou" : spUtil.getString("location", ""));
这样我们就实现了通过location 去获取我们的天气信息的方法呢,但是这边我还通过三元表达式去进行用户初始化或者是特殊情况导致的数据丢失防止程序无法正常运行。
但是需要注意的是:这边的判断有没有数值无法为null判断,所以这里我使用的是.length()去进行判断。
这样我们的全部过程就完成了