首页 > 系统 > Android > 正文

Android PreferenceFragment

2019-11-08 00:29:19
字体:
来源:转载
供稿:网友

Android PReferenceFragment

关键代码

加载Preference

addPreferencesFromResource(R.xml.settings);getPreferenceManager().setSharedPreferencesName("hidden_settings");<?xml version="1.0" encoding="utf-8"?><PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory android:key="heart_interval" android:summary="" android:title="心跳设置(秒)"> <EditTextPreference android:key="idle_heart_interval" android:title="" android:inputType="number" /> <EditTextPreference android:key="circuit_heart_interval" android:title="" android:inputType="number" /> <EditTextPreference android:key="expansion_heart_interval" android:title="" android:inputType="number" /> <EditTextPreference android:key="inspect_heart_interval" android:title="" android:inputType="number" /> </PreferenceCategory> <PreferenceCategory android:key="lbs_interval" android:summary="" android:title="定位设置(秒)"> <EditTextPreference android:key="idle_lbs_interval" android:title="" android:inputType="number" /> <EditTextPreference android:key="circuit_lbs_interval" android:title="" android:inputType="number" /> <EditTextPreference android:key="expansion_lbs_interval" android:title="" android:inputType="number" /> <EditTextPreference android:key="inspect_lbs_interval" android:title="" android:inputType="number" /> </PreferenceCategory></PreferenceScreen>

以上是加载普通的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])); } }
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表