SharePrefences是Android数据存储最常用的方式之一,本文着重介绍一下
SharePrefence是用来保存少量数据的方式,如保存程序配置信息等。SharePrefences的源码如下所示:
package android.content; import java.util.Map; import java.util.Set; public interface SharedPreferences { public interface OnSharedPreferenceChangeListener { /*监听Shareprefences变化,当key变化时,做处理*/ void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key); } public interface Editor { /*用于存储数据的方法*/ Editor putString(String key, String value); Editor putStringSet(String key, Set<String> values); Editor putInt(String key, int value); Editor putLong(String key, long value); Editor putFloat(String key, float value); Editor putBoolean(String key, boolean value); /*移除某一项*/ Editor remove(String key); /*清空的方法*/ Editor clear(); /*同步保存更改的方法*/ boolean commit(); /*异步保存到磁盘,原子提交,性能更高,不保证结果*/ void apply(); } /*获取所有的键值对*/ Map<String, ?> getAll(); /*取值的方法*/ String getString(String key, String defValue); Set<String> getStringSet(String key, Set<String> defValues); int getInt(String key, int defValue); long getLong(String key, long defValue); float getFloat(String key, float defValue); boolean getBoolean(String key, boolean defValue); /*判断是否包含某个key*/ boolean contains(String key); /*编辑接口*/ Editor edit(); /*注册监听函数*/ void registerOnSharedPreferenceChangeListener(OnSharedPreferenceChangeListener listener); /*注销监听看书*/ void unregisterOnSharedPreferenceChangeListener(OnSharedPreferenceChangeListener listener); }可以看出Shareprefences是一个接口,提供了保存和读取数据的方法。同时可以看出Shareprefences只能存储基本数据,它的Key只能是String。
保存数据的方法,获取默认名称的Shareprefences,其名称是工程包名:
SharedPreferences sp=this.getPreferences(MODE_PRIVATE); SharedPreferences.Editor editor=sp.edit(); editor.putString("username", "root"); editor.commit();支持三种模式:
读取数据的方法:
SharedPreferences sp=this.getPreferences(MODE_PRIVATE); String username=sp.getString("username", "error");第二个参数为默认参数,即当sp中不存在username时,返回的字符串。