以上是加载普通的EditTextPreference,如果想要加载复杂控件preference,比如TimerPicker
<?xml version="1.0" encoding="utf-8"?><PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory android:key="instruction" android:summary="修改完成之后需要重启程序方可生效" android:title="设置夜晚省电模式参数"> <CheckBoxPreference android:disableDependentsState="false" android:key="isPowerSavingOn" android:title="是否开启夜晚省电模式" /> <com.main.admin.tdline.fragment.TimerPickerPreference android:dependency="isPowerSavingOn" android:key="time_start" android:title="请选择工作开始时间" /> <com.main.admin.tdline.fragment.TimerPickerPreference android:dependency="isPowerSavingOn" android:key="time_stop" android:title="请选择工作结束时间" /> </PreferenceCategory></PreferenceScreen>有一点需要注意的是,这样加载的preference,默认情况下summary与text的值是空的(即便有存储的值,在首次打开是text是空的;如果赋值了,当前页面不关闭,再打开是有值的)。所以需要进行初始化
private void init(){ for(int i = 0; i < 8; i++){ EditTextPreference etp = (EditTextPreference)getPreferenceScreen().findPreference(IntervalManager.keys[i]); etp.setText(String.valueOf(data[i])); etp.setSummary(String.valueOf(data[i])); } }新闻热点
疑难解答