Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-从更改状态中禁用SwitchPreference,但获得启动对话框的单击响应?_Android_Switchpreference - Fatal编程技术网

Android-从更改状态中禁用SwitchPreference,但获得启动对话框的单击响应?

Android-从更改状态中禁用SwitchPreference,但获得启动对话框的单击响应?,android,switchpreference,Android,Switchpreference,如果我使用setEnabled(false)禁用,则开关(1)设置为off,(2)我不会从OnClickListener获得启动对话框的响应 编辑:在这种情况下,我不希望开关自动从on切换到off 有人处理过这个问题吗 解决方案是在OnPreferenceClickListener回调中使用setChecked(true),然后启动对话框 注意:这在首选项ChangeListener回调中不起作用。对于需要代码的用户: if (!BuildConfig.FULL_VERSION) {

如果我使用
setEnabled(false)
禁用,则开关(1)设置为off,(2)我不会从
OnClickListener
获得启动对话框的响应

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


有人处理过这个问题吗

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


注意:这在首选项ChangeListener回调中不起作用。

对于需要代码的用户:

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;
                }
            });
        }

明亮的谢谢:D