android – 如何拒绝onSharedPreferenceChanged()侦听器中的更改

onSharedPreferenceChanged()侦听器没有要返回的布尔类型,因为onPreferenceChanged()侦听器具有.

那么如何在验证后拒绝更改?

发生在我身上的唯一方法是将所有共享首选项保存在局部变量中,如果验证失败,则从局部变量中恢复该值,如果它通过则更新局部变量.

这是双重工作吗?是否存在拒绝的内置机制?

最佳答案

Is this doing double work?

我认同.如果代码的一部分要拒绝此更改,为什么代码的另一部分允许它?

Is there a built-in mechanism for reject?

用户输入应在onPreferenceChange中在提交之前进行验证.看起来onSharedPreferenceChanged的目的不是验证,而是在提交更改时接收只读实时更新.

由于其他代码可以接收此回调并对其执行操作,因此在此回调期间验证为时已晚.

参考(Preference javadoc):

This class provides the View to be displayed in the activity and associates with a SharedPreferences to store/retrieve the preference data

点赞