ListPreference mit einer max Anzahl der wählbaren Optionen
-
19-09-2019 - |
Frage
Ich mag ein Element in meinem Präferenz-Menü haben, geschieht Folgendes:
- Zeigen Sie eine Liste von Optionen.
- Viele sind wählbar
- Die maximale Menge an Optionen gewählt 2 wird.
Möglichkeiten Ich dachte an:
- Doing a getrennt
PreferenceScreen
und Optionen wiecheckBoxes
zeigen, aber ich weiß nicht, wo die Logik von maximal 2 Optionen zu setzen. - Erweiterung
DialogPreference
und von Hand zu tun.
Was ist der beste Weg?
Lösung
Die Ausweitung DialogPreference
würden Sie die am nächsten in Bezug auf Look-and-Feel erhalten; die Preference
Klassen sind relativ unflexibel und un verlängerbare in meiner Erfahrung.
Ich kann nicht zu viel über PreferenceScreen
erinnern, aber ich glaube, es ist ähnlich.
In einer App an denen ich gearbeitet, landeten wir getrennte Aktivitäten mit bis über Intent
von einem Preference
Artikel ins Leben gerufen onClick. Dies ermöglichte es uns leicht zu Vorzug Bildschirme zu entwickeln, die ein wenig komplexer als die üblichen Validierungslogik erforderlich.
Andere Tipps
Sie können die Logik von maximal zwei Optionen setzen in einem PreferenceActivity
dass OnSharedPreferenceChangeListener
implementiert Sie den Hörer ermöglichen, kann nur zu sein, zuzuhören, wenn so etwas wie dies erforderlich machen:
@Override
protected void onResume() {
super.onResume();
//Register the listener
getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
}
@Override
protected void onPause() {
super.onPause();
// Unregister the listener
getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
}