你如何强制listPreference重置它的值?

Sea*_*ean 5 android listpreference

我有一个ListPreference,它有一个默认值,它很好用.我也有一个偏好,重置所有共享的偏好,这是非常有效的.问题是如果你回到ListPreference它仍然显示旧的值.如果您完全退出首选项并返回,则会正确显示.

所以问题是如何强制ListPreference使用正确的值?其他所有偏好似乎都很好.

我确实找到了一个解决方法,但我对它不满意,因为它对我来说似乎很脏.当用户点击重置时,在重置值后,我自己将值设置为已经设置的值.

( (ListPreference) findPreference( myListKey ) ).setValue( String.valueOf( DEFAULT_VALUE ) );
Run Code Online (Sandbox Code Playgroud)

提前致谢.

9ni*_*x00 0

我认为你应该重写 ListPreference 中的 onSetInitialValue 方法。像这样。

公共类 CustomListPreference 扩展 ListPreference{

protected void onSetInitialValue(布尔恢复值,对象默认值){

//当它已经初始化或者不是你的选项值时 if(restoreValue){

}else{ //将其设置为defaultValue

}

}

}