在Android中更改SwitchPreference的值

时间:2018-10-11 15:43:56

标签: android kotlin

我有一个带有开关首选项的PreferenceFragmentCompat。其中一个首选项需要获得许可,我已经弄清楚了如何请求许可。我的问题是,如果我必须检查许可权,那么在收到许可权结果之前,该开关不应更改值,但是可以。 所以我的问题是,在这种情况下如何更改开关的值?

1 个答案:

答案 0 :(得分:0)

如果您想完全实现该结果,我认为您必须从头开始重写SwitchPreference,它应在更改其内部状态之前等待“ onChanged()”回调结果。

或者您可以将组件保持在较新/更改的状态,然后仅在未授予权限的情况下才回滚到先前的状态。 权限请求对话框不可绕过,因此,即使SwitchPreference已经更改,用户也不能在您的Activity中做很多事情,直到他允许或拒绝Permission,因此将SwitchPreference保持为临时状态是相当安全的。