我正在开发一个具有很多可修改首选项的小应用程序,其中大多数是SeekBarPreferences
。
碰巧的是,由于我对Android默认SeekBarPreferences
并不满意,因此我使用的是非常好的MaterialSeekBarPreference库,不幸的是两年没有更新。
这是该库使用的代码示例:
<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
。
加载首选项活动也不会设置这些默认值。
有没有解决此问题的方法?否则,如果我要编辑库,应该更改什么?
答案 0 :(得分:0)
我不使用方法 PreferenceManager.getDefaultSharedPreferences(this, R.xml.preferences, true);
。相反,我在 Fragment 中使用了 preference.setDefaultValue(object);
。