Ich möchte eine Einstellungsaktivität für meine App erstellen. Ich habe ein PreferenceActivity
mit einem schönen Layout einschließlich eines ListPreference
Objekts definiert, damit der Benutzer ein Bluetooth Gerät auswählt. Ich habe Probleme beim dynamischen Auffüllen der Liste .
Ich möchte ListPreference
mit Werten von einem Array-Adapter füllen (die ich erstellen und mit den entsprechenden Bluetooth-Gerätenamen füllen werde).
Wenn dies eine kreisförmige Ansicht wäre, könnte ich einfach setAdapter()
aufrufen. Aber mit dem ListPreference
-Objekt kann ich nicht herausfinden, wie man einen Adapter anhängt ( findviewByID
wird nicht von View To ListPreference
übertragen, so dass ich nicht einmal ein Handle für das Objekt bekommen kann).
Ich möchte einen Adapter anhängen und dann den Adapter mit Werten füllen, die wiederum ListPreference
mit Werten füllen würden.
ListPreference
funktioniert nicht mit Adaptern, es funktioniert mit Strings. Siehe setEntries()
und setEntryValues()
Um zu Ihrem ListPreference
zu gelangen, rufen Sie findPreference()
auf. auf deinem PreferenceActivity
. Wirf die Preference
zurück in ListPreference
.
Nur ein Update zu diesem Fall jemand anderes kommt, ge0rg Antwort funktioniert, aber änderte es ein wenig zu berücksichtigen, mehrere Vorlieben und nicht nur die Bluetooth-und auch, wenn sie nicht paar Geräte eingerichtet haben, so dass Sie nicht Erhalte einen Fehler mit einem Null-Array.
%Vor%'Hoffe, das hilft jemandem ... oh und das ist unter der onCreate-Methode für die Präferenz-Aktivität
gestelltEin anderer Weg wäre, onPrepareDialogBuilder von ListPreference und initialisieren setSingleChoiceItems von AlertDialog.Builder direkt mit Ihrem Adapter:
%Vor%Wenn Sie sich die Android-Quellen ansehen, werden Sie feststellen, dass onPrepareDialogBuilder () Folgendes aufruft:
%Vor%mit diesen Eintragsarrays. Um ListPreference einige Adapter (z. B. ArrayAdaper, CursorAdapter) zu verwenden, müssen Sie nur aufrufen:
%Vor%stattdessen.
Auf diese Weise wird ListPreference direkt auf dem Adapter ausgeführt und Sie müssen die Daten nicht vom Adapter kopieren, um sie in die Einträge-Arrays einzufügen.
Finden Sie ein funktionierendes Beispiel hier .
Tags und Links arrays android preferences adapter