我正在基于xml(条目和entryValues)生成一个listPreference对话框。

<string-array name="listArray">
    <item>Title (A-Z)</item>
    <item>Title (Z-A)</item>
    <item>Visits (default)</item>
    <item>Date</item>
    <item>Manual</item>
</string-array>
<string-array name="listValues">
   <item>titleASC</item>
   <item>titleDESC</item>
   <item>visitsSort</item>
   <item>createSort</item>
   <item>manualSort</item>
</string-array>

我想基于其他一些参数来隐藏/禁用某些条目(例如:Manual)。

我了解它应该在此范围内:
Preference sorted = (Preference) findPreference(OPT_SORT);

        sorted.setOnPreferenceClickListener(new OnPreferenceClickListener() {
            public boolean onPreferenceClick(Preference preference) {

                if (params) {
                    What should i put here to hide/disable some of the entries?
                }

                return true;
            }
        });

谢谢!

编辑:

我发现的最佳解决方案是加载一组不同的Entries和EntryValues。
在首选项类(onCreate)上:
ListPreference sortBy = (ListPreference) findPreference(OPT_SORT);
        if (isTabletDevice()) {
            sortBy.setEntries(getResources().getStringArray(R.array.HClistArray));
            sortBy.setEntryValues(getResources().getStringArray(R.array.HClistValues));
        }

希望这对任何人有帮助! :)

最佳答案

AFAIK,ListPreference不支持此功能。您可能能够创建自己的ListPreference子类,在其中使用自定义Adapter并指示启用和禁用了哪些项目。

关于Android:ListPreference隐藏/禁用值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6954927/

10-10 07:06