关于onGetDefaultValue的疑问

时间:2014-12-21 14:19:21

标签: android sharedpreferences

我按照此处的说明创建了自定义偏好设置。 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(指数) 不?

由于

0 个答案:

没有答案