3

如果我禁用使用setEnabled(false)开关,则 (1) 设置为关闭并且 (2) 我没有得到OnClickListener启动对话框的响应。

编辑:在这种情况下,我不希望开关自动从打开切换到关闭。

有没有人处理过这个问题?

4

2 回答 2

6

解决方案是setChecked(true)在回调内部使用,OnPreferenceClickListener然后启动对话框。

OnPreferenceChangeListener注意:这在回调内部不起作用。

于 2016-07-11T19:36:34.037 回答
2

对于那些想要代码的人:

if (!BuildConfig.FULL_VERSION) {
            SwitchPreferenceCompat preference = (SwitchPreferenceCompat) findPreference(getString(R.string.pref_notifications_service_key));
            preference.setDefaultValue(false);
            preference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
                @Override
                public boolean onPreferenceClick(Preference preference) {
                    ((SwitchPreferenceCompat) preference).setChecked(false);
                    new ProFeatureDialogFragment().show(getFragmentManager(), "PRO_FEATURE_TAG");
                    return false;
                }
            });
        }
于 2017-07-13T19:54:08.447 回答