软件参数设置,轻量级存储类
文件放在/data/data/<包>/shared_prefs
指定文件名不要带有后缀,默认以xml保存
三种方式得到preference区别:
1.public SharedPreference getPreferences(int mode)
通过Activity对象获取,获取的是本Activity私有的Preference,保存在系统中的xml形式的文件名为activity名字,因此一个activity只能由一个。
2.public SharedPreference getSharedPreferences(String name,int mode)
因为activity继承了ContextWrapper,因此也是通过Activity获取对象,但是属于整个应用程序,可以有多个,以第一参数name为文件名保存在系统中。
3.public static SharedPreferences getDefaultSharedPreferences(Context context)
PreferenceManager的静态函数,保存PreferenceActivity中的设置,属于整个应用程序,但只有一个,android会根据包名和PreferenceActivity的布局文件起一个名字保存。
// SharedPreferences
// 保存偏好设置
public void savePreference(String name, Integer age) {
preferences = context.getSharedPreferences("itcast",Context.MODE_PRIVATE);
Editor editor = preferences.edit();
editor.putString("name", name);
editor.putInt("age", age);
editor.commit();
}
// 读取偏好设置
public Map<String, String> getPreference() {
Map<String, String> params = new HashMap<String, String>();
params.put("name", preferences.getString("name", ""));
params.put("age", String.valueOf(preferences.getInt("age", 0)));
return params;
}
PreferenceActivity
可以自动持久化,每次操作完成立即持久化。
PreferenceFragment 3.0
用PreferenceActivity和PreferenceScreen配合完成Settings
PreferenceActivity是Activity,PreferenceScreen不是一个界面组建
onAttachedToActivity()在里面生成界面,是个控制类
PreferenceCategory类别(分组)
Key
Title
Summary 描述
PreferenceScreen 嵌套:子Activity跳转
addPreferenceFromIntent(intent)
addPreferenceFromResource(rsid)
ListPreference
dialogTitle
entries:显示文字列表
RingtonePreference 铃声
Preference 文本