只有步骤,记录备用:
XML布局文件:
部分具体元素含义:
PreferenceScreen:一屏(xml最外层也是一个PreferenceScreen)
PreferenceCategory:一组
CheckBoxPreference:复选框
EditTextPreference:编辑框(弹出窗口)
ListPreference:单选列表(弹出窗口)
intent:启动一个activity(action/data固定目标)
实现到页面
写好布局文件之后,在PreferenceFragment或PreferenceActivity的实现类中使用:
addPreferencesFromResource(R.xml.布局文件);
来把布局文件实现到界面中
对控件事件进行监听:
注释:
如同使用SharedPreference一样,会生成记录设置的配置文件,存储在对应包的文件夹下
不过不用手动写入或读取具体配置,PreferenceFragment或PreferenceActivity机制自行完成写入和读取
首先获取SharedPreference对象:
sp = PreferenceManager.getDefaultSharedPreferences(this);
然后注册监听:
sp.registerOnSharedPreferenceChangeListener(new OnSharedPreferenceChangeListener(){
//sharedPreferences:句柄
//key:通过xml中的key判断那个控件发生了改变
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
if(key.equals("autoBack")){
Boolean autoBack = sharedPreferences.getBoolean("autoBack", false);
if(autoBack){
Log.d("TAG","autoBack: true!");
}
else {
Log.d("TAG","autoBack: false!");
}
}
}
});
手动获取或修改配置文件中的键值
首先SharedPreferences实例:
spc=this.getSharedPreferences("com.android.PreferenceActivity.Usage_preferences.xml", MODE_WORLD_READABLE );
取值 :
Boolean autoBack = spc.getBoolean("autoBack", false);
赋值:
public void putValue(String key, Boolean value){
spe = spc.edit();
spe.putBoolean(key, value);
spe.commit();
}