单击该ListPreference时,如何阻止打开ListPreference对话框?

时间:2019-06-06 14:48:49

标签: java android listpreference

我有一个ListPreference,可以选择目的和设置参数。当我在所有Preferences所在的“设置片段”中单击它时,它会打开一个对话框,让我选择其中列出的项目。我正在使用两个处理程序,OnPreferenceClickListener(单击我的ListPreference时调用)和OnPreferenceChangeListener(在其中选择一个项目时调用)。

我想完全不禁用ListPreference来阻止对话框打开,因此我无法选择其中的项目。我已禁止在boolean中使用全局OnPreferenceChangeListener来更改项目。

boolean canChange = true;

final ListPreference listPreference = (ListPreference) findPreference("myListPreference");

listPreference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {

    @Override
    public boolean onPreferenceClick(Preference preference) {

        canChange = myCondition;
        return true;
    }
});

listPreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {

    @Override
    public boolean onPreferenceChange(Preference preference, Object newValue) {

        if(canChange)
            someValueHolder = listPreference.findIndexOfValue(newValue.toString());

        return true;
    }
});

这是一个错误的代码,但是如果myConditionfalse,我会尽力避免更改列出的项目。但是我想知道如何在myConditionfalse的情况下单击首选项时阻止弹出对话框,而是打开一个带有You cannot change this ListPreference when myCondition is false!之类的警告消息的对话框吗? / p>

0 个答案:

没有答案