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

ilo*_*mbo 5 validation android sharedpreferences

onSharedPreferenceChanged()听众没有一个boolean类型的回报,作为onPreferenceChanged()听者。

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

我想到的唯一方法是将所有共享首选项存储在局部变量中,如果验证失败,则从局部变量恢复值,如果通过则更新局部变量。

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

x-c*_*ode 2

\n

这是在做双重工作吗?

\n
\n\n

我想是这样。如果代码的一部分将拒绝这一更改,为什么代码的另一部分允许它呢?

\n\n
\n

是否有内置的拒绝机制?

\n
\n\n

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

\n\n

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

\n\n

参考(首选项 javadoc):

\n\n
\n

此类提供要在活动中显示的 View\xc2\xa0 并与 SharedPreferences\xc2\xa0 关联以存储/检索首选项数据

\n
\n