I Have a MultiSelectListPreference which shows a the list of weeks when user close the multi select dialog i would like to show the selected values in summary using %s but it only works with ListPreference. Is there any solution for this?
<MultiSelectListPreference
android:id="@+id/pref_select_week"
android:defaultValue="@array/week_array_values"
android:entries="@array/week_array"
android:entryValues="@array/week_array_values"
android:icon="@drawable/ic_pref_time"
android:key="keyZodiacSign"
android:summary="%s"
android:title="Select Days" />
First add an extension method to MultiSelectListPreference which sets the summary from the selected values:
fun MultiSelectListPreference.setSummaryFromValues(values: Set<String>) {
summary = values.map {entries[findIndexOfValue(it)]}.joinToString(", ")
}
And then in eg. onCreateView of your PreferenceFragmentCompat:
val columnSelect = findPreference("EXPORT_COLUMNS") as MultiSelectListPreference
columnSelect.onPreferenceChangeListener = Preference.OnPreferenceChangeListener { preference, newValue ->
columnSelect.setSummaryFromValues(newValue as Set<String>)
true
}
columnSelect.setSummaryFromValues(columnSelect.values)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With