【发布时间】:2019-07-22 03:40:27
【问题描述】:
我正在开发一个小应用程序,它有很多可修改的偏好,其中大部分是SeekBarPreferences。
碰巧,由于我对 Android 默认的 SeekBarPreferences 很不满意,我正在使用非常好的 MaterialSeekBarPreference 库,很遗憾它已经有 2 年没有更新了。
这是这个库使用的代码示例:
<com.pavelsikun.seekbarpreference.SeekBarPreference
android:key="@string/param_maxEvent"
android:title="Blahlblahblahblahblah"
android:summary="Blahlblahblahblahblah too"
android:defaultValue="2"
custom:msbp_minValue="0"
custom:msbp_maxValue="5"
custom:msbp_measurementUnit="events"
custom:msbp_interval="1"
custom:msbp_dialogEnabled="false"/>
如您所见,您可以使用android:defaultValue xml 属性,它与UI 完美配合。
由于我需要在应用初始化时加载所有这些默认值,我使用PreferenceManager.setDefaultValues 方法:
public class App extends Application {
@Override public void onCreate() {
super.onCreate();
PreferenceManager.setDefaultValues(this, R.xml.preferences, true);
}
}
这适用于所有默认首选项(SwitchPreference、ListPreference、Preference),但遗憾的是不适用于这些自定义 SeekBarPreference。
加载首选项活动也不会设置这些默认值。
这个问题有什么解决方法吗?否则,如果我要编辑库,我应该更改什么?
【问题讨论】:
标签: android android-preferences default-value