在onSharedPreferenceChanged()
听众没有一个boolean类型的回报,作为onPreferenceChanged()
听者。
那么验证后如何拒绝更改呢?
对我而言,唯一发生的方法是将所有共享的首选项存储在局部变量中,如果验证失败,则从局部变量中恢复值,如果通过则更新局部变量。
这是双重工作吗?是否有内置的拒绝机制?
这是双重工作吗?
我想是这样。如果代码的一部分将拒绝此更改,为什么代码的另一部分允许它呢?
是否有内置的拒绝机制?
在onPreferenceChange
提交用户输入之前,应先对其进行验证。看起来,它的目的onSharedPreferenceChanged
不是验证,而是在提交更改后接收只读实时更新。
由于其他代码可以接收此回调并对其执行操作,因此在此回调期间进行验证为时已晚。
参考(Preference Javadoc):
此类提供要在活动中显示的View,并与SharedPreferences关联以存储/检索首选项数据
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句