我按照此处的说明创建了自定义偏好设置。 http://developer.android.com/guide/topics/ui/settings.html#Custom 扩展DialogPreference
一切正常但我有一些我想要理解的问题。
第一个问题: 我已经跟踪了所有方法和构造函数,我看到在构造函数调用之前调用了onGetDefaultValue方法(MyCustomPreference(Context context,AttributeSet attrs)) 它怎么可能有效?
第二个问题: 在他们的例子中
@Override
protected Object onGetDefaultValue(TypedArray a, int index) {
return a.getInteger(index, DEFAULT_VALUE);
}
和说法
方法参数提供了您需要的一切:数组 属性和android的索引位置:defaultValue,其中 你必须检索。您必须实现此方法的原因 从属性中提取默认值是因为必须 如果值为,则指定属性的本地默认值 未定义。
那么,我必须在两个不同的地方(在java代码和preferences.xml处)定义默认值吗?我认为这有点过分。
第三个问题: 这不是与onGetDefaultValue方法直接相关的问题。 这个方法怎么样? a.getInteger(index,DEFAULT_VALUE); 需要默认值但是 a.getString(指数) 不?
由于