(zz:Android开发中SharedPreferences的应用)
项目中需要对用户输入的信息进行存储,然后在后续程序中读取使用,利用到了SharedPreferences类。
A. 储存操作
通常会在onPause()方法中进行Preferences的储存操作。
public SharedPreferences getSharedPreferences (String name, int mode)
其中name为Preferences的文件名
mode有以下三种:
1 /*
2 * SharedPreferences支持string,int,float,long等
3 * 读写权限对本程序没有作用
4 * 模式为私有(Context.MODE_PRIVATE)值0,
5 * 公开可读(Context.MODE_WORLD_READABLE)值1,
6 * 公开可写(Context.MODE_WORLD_WRITEABLE)值2
7 * 或者某种组合
8 * 追加形式(Context.MODE_APPEND)
9 *
10 * */
MODE_PRIVATE 表示当下应用程序专用
MODE_WORLD_READABLE 表示数据能被其他应用应用程序读,但是不能写。
MODE_WORLD_WRITEABLE 表示数据能被其他应用应用程序读,写。
通过SharedPreferences.Editor对Preferences进行写入设定。
SharedPreferences.Editor editor = preferences.edit();
再利用SharedPreferences.Editor的putBoolean()、putFloat()、putInt()、putLong()及putString()方法进行数据的写入。
最后需要执行commit()方法,才能将设定真正写入。
B. 读取操作
同样通过getSharedPreferences()来指定文件名。再使用getBoolean()、getFloat()、getInt()、getLong()及getString()方法来读取数据。
可以设定如果没有读到相应数据的默认返回值。
读取preferences的程序:
1 /**
2 * read the preferences and get the value
3 * @return String
4 */
5 protected String readPreferences(String perferencesName, String key) {
6 SharedPreferences preferences = getSharedPreferences(perferencesName, MODE_PRIVATE);
7 String result = preferences.getString(key, null);
8 return result;
9 }
写入preferences的程序:
1 /**
2 * write the preferences
3 */
4 protected void writePreferences(String perferencesName, String key, String value) {
5 SharedPreferences preferences = getSharedPreferences(perferencesName, MODE_PRIVATE);
6 SharedPreferences.Editor editor = preferences.edit();
7 editor.putString(key, value);
8 editor.commit();
9 }