Change the summary of a ListPreference with the new value (Android)

前端 未结 14 1180
感动是毒
感动是毒 2020-12-30 03:01

How can I modify the summary of a ListPreference to the new \"Entry\" string selected by the user (not the entry value)

I suppouse its with setOnPreferenceChangeList

14条回答
  •  情书的邮戳
    2020-12-30 04:02

    This is the most simplified way I have implemented. Just take the values given by the onPreferenceChange listener

        ListPreference preference;        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
        preference = (ListPreference)findPreference("myKey");
        preference.setSummary(preferenceColorButtons.getEntry());
        preference.setOnPreferenceChangeListener(new        OnPreferenceChangeListener() {
    
            @Override
            public boolean onPreferenceChange(Preference preference, Object newValue) {
                ListPreference listPreference = (ListPreference)preference;
                int id = 0;
                for (int i = 0; i < listPreference.getEntryValues().length; i++)
                {
                    if(listPreference.getEntryValues()[i].equals(newValue.toString())){
                        id = i;
                        break;
                    }
                }
                preference.setSummary(listPreference.getEntries()[id]);
                return true;
            }
        });
    

    }

提交回复
热议问题