Einstellung

Sie können interaktive Einstellungsbildschirme erstellen, ohne mit dem Gerätespeicher interagieren oder die Benutzeroberfläche verwalten zu müssen.
Letzte Aktualisierung Stabile Version Releasekandidat Beta-Ausgabe Alpharelease
26. Juli 2023 1.2.1 - - -

Abhängigkeiten deklarieren

Zum Hinzufügen einer Abhängigkeit von einer Präferenz müssen Sie Ihrem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie im Maven-Repository von Google.

Fügen Sie der Datei build.gradle für Ihre Anwendung oder Ihr Modul die Abhängigkeiten für die benötigten Artefakte hinzu:

Groovig

dependencies {
    def preference_version = "1.2.1"

    // Java language implementation
    implementation "androidx.preference:preference:$preference_version"
    // Kotlin
    implementation "androidx.preference:preference-ktx:$preference_version"
}

Kotlin

dependencies {
    val preference_version = "1.2.1"

    // Java language implementation
    implementation("androidx.preference:preference:$preference_version")
    // Kotlin
    implementation("androidx.preference:preference-ktx:$preference_version")
}

Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.

Feedback

Dein Feedback hilft uns, Jetpack zu verbessern. Lassen Sie uns wissen, wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie eine neue erstellen. Durch Klicken auf die Stern-Schaltfläche können Sie zu einem vorhandenen Problem abstimmen.

Neues Problem erstellen

Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.

Version 1.2

Version 1.2.1

26. Juli 2023

androidx.preference:preference:1.2.1 wird freigegeben. Version 1.2.1 enthält diese Commits.

Fehlerkorrekturen

  • PreferenceHeaderFragmentCompat verarbeitet die Zurück-Schaltfläche des Systems jetzt korrekt, wenn sie in einem ComponentDialog verwendet wird oder wenn Bibliotheken wie das @AndroidEntryPoint von Hilt verwendet werden, die das Context des Fragments umschließen.
  • Die Einstellung hängt jetzt von Aktivität 1.5.1 ab. (Ie5d22)
  • PreferenceHeaderFragmentCompat.onCreateInitialDetailFragment gibt jetzt header.extras als Fragment-Argumente weiter.

Version 1.2.0

26. Januar 2022

androidx.preference:preference:1.2.0 und androidx.preference:preference-ktx:1.2.0 werden veröffentlicht. Version 1.2.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.1.0

  • PreferenceHeaderFragmentCompat wurde für die Zwei-Fenster-Einstellung hinzugefügt, die sich automatisch an die Größe des verwendeten Geräts anpasst. Dadurch eignet sich die Funktion für den Einsatz auf Smartphones, faltbaren Smartphones und Tablets. Der Header-Bereich wird durch Überschreiben der Methode onCreatePreferenceHeader() für PreferenceHeaderFragmentCompat bereitgestellt. Wenn <Preference> im Header PreferenceFragmentCompat verwendet wird, das app:fragment verwendet, wird dieses Fragment im zweiten Detailbereich angezeigt. Das anfängliche Detailfragment, das angezeigt werden soll, bevor eine Einstellung manuell ausgewählt wird, kann durch Überschreiben von onCreateInitialDetailFragment() angepasst werden. Die Standardimplementierung gibt die erste Einstellung zurück, für die ein Fragment definiert ist.
class TwoPanePreference : PreferenceHeaderFragmentCompat() {
    override fun onCreatePreferenceHeader(): PreferenceFragmentCompat {
        return PreferenceHeader()
    }
}
  • vielen APIs, für die bisher @NonNull oder @Nullable nicht angegeben waren, wurden Anmerkungen zur Null-Zulässigkeit hinzugefügt. Dies ist eine potenzielle Änderung an der Kotlin-Quelle, wenn die in Ihrem Kotlin-Code ausgewählte Null-Zulässigkeit nicht mit der jetzt definierten Null-Zulässigkeit übereinstimmt.

  • PreferenceFragmentCompat sucht nun nach Implementierungen der OnPreferenceStartFragmentCallback-, OnNavigateToScreenListener- und OnDisplayPreferenceDialogListener-Schnittstelle in übergeordneten Fragmenten, bevor geprüft wird, ob diese Schnittstellen vom Hosting-Kontext oder der Hosting-Aktivität implementiert wurden.

Version 1.2.0-rc01

15. Dezember 2021

androidx.preference:preference:1.2.0-rc01 und androidx.preference:preference-ktx:1.2.0-rc01 werden ohne Änderungen seit dem 1.2.0-beta01 veröffentlicht. Version 1.2.0-rc01 enthält diese Commits.

Version 1.2.0-beta01

17. November 2021

androidx.preference:preference:1.2.0-beta01 und androidx.preference:preference-ktx:1.2.0-beta01 werden ohne Änderungen gegenüber Präferenz 1.2.0-alpha02 veröffentlicht. Version 1.2.0-beta01 enthält diese Commits.

Version 1.2.0-alpha02

3. November 2021

androidx.preference:preference:1.2.0-alpha02 und androidx.preference:preference-ktx:1.2.0-alpha02 werden veröffentlicht. Version 1.2.0-alpha02 enthält diese Commits.

API-Änderungen

  • vielen APIs, für die bisher @NonNull oder @Nullable nicht angegeben waren, wurden Anmerkungen zur Null-Zulässigkeit hinzugefügt. (I04252, Ie2cc0)
  • Die openPreference() API wurde aus PreferenceHeaderFragmentCompat entfernt. Diese Methode wird für Sie aufgerufen und sollte nicht manuell aufgerufen werden. (Ia6989)

Änderungen des Verhaltens

  • PreferredFragmentCompat-Callbacks für OnNavigateToScreenListener und OnDisplayPreferenceDialogListener folgen jetzt demselben Muster wie OnPreferenceTreeClickListener und suchen die übergeordnete Fragmenthierarchie nach gültigen Listenern, bevor Sie prüfen, ob diese Schnittstellen vom Hosting Context oder der Activity implementiert werden. (I7ae6c)

Version 1.2.0-alpha01

27. Oktober 2021

androidx.preference:preference:1.2.0-alpha01 und androidx.preference:preference-ktx:1.2.0-alpha01 werden veröffentlicht. Version 1.2.0-alpha01 enthält diese Commits.

Neue Funktionen

  • PreferenceHeaderFragmentCompat für Einstellung für zwei Fenster hinzugefügt (I9a2d8)

Änderungen des Verhaltens

  • Präferenz-Callbacks für OnPräferenzDisplayDialogCallback, OnPräferenzStartScreenCallback und OnPpräferenzStartFragmentCallback können jetzt in einem Nicht-Activity-Kontext implementiert werden. getContext() wird vor der Überprüfung von getActivity() überprüft, um zu sehen, ob diese Callbacks implementiert werden. Wenn getContext() eine Aktivität zurückgibt (häufiger Fall), liegt keine Verhaltensänderung vor.

  • Der Aufruf von PreferenceFragmentCompat an onPreferenceTreeClick sucht jetzt nach Implementierungen der OnPreferenceStartFragmentCallback-Schnittstelle in übergeordneten Fragmenten, bevor die Implementierung der Aktivität berücksichtigt wird. (c64eed)

Version 1.1

Version 1.1.1

15. April 2020

androidx.preference:preference:1.1.1 und androidx.preference:preference-ktx:1.1.1 werden veröffentlicht. Version 1.1.1 enthält diese Commits.

Fehlerkorrekturen

  • PreferenceDialogFragmentCompat gibt kein IllegalStateException mehr aus, wenn ein FragmentContainerView aus XML infließt. (b/150051716)

Aktualisierungen von Abhängigkeiten

  • Die Einstellung hängt jetzt von Fragment 1.2.4 ab. (aosp/1277317)
  • Die preference-ktx-Abhängigkeit hängt jetzt von androidx.core:core-ktx:1.1.0 und androidx.fragment:fragment-ktx:1.2.4 ab. Sie spiegelt die Abhängigkeiten des preference-Hauptartefakts wider und sorgt dafür, dass durch das Upgrade von preference-ktx sowohl das Haupt- als auch das -ktx-Artefakt der vorübergehenden Abhängigkeiten aktualisiert werden. (aosp/1277319)

Version 1.1.0

5. September 2019

androidx.preference:preference:1.1.0 und androidx.preference:preference-ktx:1.1.0 werden veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.

Wenn dies der erste 1.1.*-Release ist, auf den Sie aktualisieren, finden Sie hier eine kurze Liste der größeren Änderungen seit der letzten stabilen Version 1.0.0. Vielleicht finden Sie auch den Leitfaden zu den Einstellungen, die Beispiel-App und den Vortrag zum Android Dev Summit nützlich.

Wichtige Änderungen seit Version 1.0.0

  • PreferenceFragment und andere Klassen, die Framework-Fragmente verwenden, wurden eingestellt. Sie sollten stattdessen PreferenceFragmentCompat und andere *kompatible Klassen verwenden.
  • Sie können jetzt eine SummaryProvider für eine Einstellung festlegen, um ihre Zusammenfassung dynamisch zu konfigurieren, wenn die Einstellung aktualisiert wird oder für den Nutzer sichtbar wird. Weitere Informationen finden Sie im Leitfaden.
  • EditTextPreference.OnBindEditTextListener-Schnittstelle wurde hinzugefügt. Dadurch kann die EditText im entsprechenden Dialogfeld angepasst werden, nachdem das Dialogfeld gebunden wurde. Dies ist ein direkter Ersatz für die Verwendung von Attributen wie android:inputType direkt auf der EditTextPreference, die in der AndroidX-Bibliothek nicht unterstützt werden. Weitere Informationen finden Sie im Leitfaden.
  • Preference.setCopyingEnabled() hinzugefügt. Wenn festgelegt, wird durch langes Drücken auf die Einstellung ein Kontextmenü angezeigt, über das die Zusammenfassung der Einstellung kopiert werden kann.
  • Der SeekBarPreference-Stil wurde aktualisiert, um den Materialspezifikationen zu entsprechen. Weitere Änderungen an SeekBarPreference finden Sie im detaillierten Änderungsprotokoll.
  • Zahlreiche Fehlerkorrekturen, Stilaktualisierungen, Kompatibilitätskorrekturen auf API-Ebene und allgemeine Verbesserungen der Dienstqualität.

Version 1.1.0-rc01

2. Juli 2019

androidx.preference:preference:1.1.0-rc01 und androidx.preference:preference-ktx:1.1.0-rc01 werden veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.

API-Änderungen

  • Preference#onInitializeAccessibilityNodeInfo einstellen
  • Diese Methode hat Informationen zum Barrierefreiheitsknoten für eine bestimmte Einstellung weitergeleitet. Dies ist jedoch die falsche Ebene für diese Anpassung. Wenn Sie Informationen zur Barrierefreiheit anpassen möchten, sollten Sie stattdessen „onBindViewHolder“ überschreiben und Informationen zur Barrierefreiheit direkt zur Ansicht hinzufügen.

Version 1.1.0-beta01

5. Juni 2019

androidx.preference:preference:1.1.0-beta01 und androidx.preference:preference-ktx:1.1.0-beta01 werden veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.

Wichtige Änderungen seit Version 1.1.0

Wenn dies die erste 1.1.*-Version ist, auf die Sie aktualisieren, finden Sie hier eine kurze Liste der größeren Änderungen seit der letzten stabilen Version 1.1.0. Vielleicht finden Sie auch den Leitfaden zu den Einstellungen, die Beispiel-App und den Vortrag zum Android Dev Summit nützlich.

  • PreferredFragment und andere Klassen, die Framework-Fragmente verwenden, wurden eingestellt. Verwenden Sie stattdessen PreferredFragmentCompat und andere *compat-Klassen.
  • Sie können jetzt einen SummaryProvider für eine Einstellung festlegen, um seine Zusammenfassung dynamisch zu konfigurieren, wenn die Einstellung aktualisiert wird oder für den Nutzer sichtbar wird. Weitere Informationen finden Sie im Leitfaden.
  • EditTextPreference.OnBindEditTextListener-Schnittstelle wurde hinzugefügt. Dadurch kann der im entsprechenden Dialogfeld angezeigte EditText angepasst werden, nachdem das Dialogfeld gebunden wurde. Dies ist ein direkter Ersatz für die direkte Verwendung von Attributen wie „android:inputType“ in „EditText preference“, die in der AndroidX-Bibliothek nicht unterstützt werden. Weitere Informationen finden Sie im Leitfaden.
  • Preference.setCopyingEnabled() hinzugefügt. Wenn festgelegt, wird durch langes Drücken auf die Einstellung ein Kontextmenü angezeigt, über das die Zusammenfassung der Einstellung kopiert werden kann.
  • Der SeekBarPreferred-Stil wurde aktualisiert, um den Materialspezifikationen zu entsprechen. Weitere Informationen zu weiteren Änderungen an SeekBarPreferred finden Sie im detaillierten Änderungsprotokoll.
  • Zahlreiche Fehlerkorrekturen, Stilaktualisierungen, Kompatibilitätskorrekturen auf API-Ebene und allgemeine Verbesserungen der Dienstqualität.

API-Änderungen seit 1.1.0-alpha05

  • Entfernt getOnBindEditTextListener aus der öffentlichen API. Sie sollten „setOnBindEditTextListener“ nur bei der Interaktion mit dieser API verwenden.

Falls Probleme auftreten oder du Vorschläge für neue Funktionen hast, kannst du sie hier melden.

Version 1.1.0-alpha05

7. Mai 2019

androidx.preference:preference:1.1.0-alpha05 und androidx.preference:preference-ktx:1.1.0-alpha05 werden veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.

Neue Funktionen

  • Der Stil für Einstellungen, die nicht ausgewählt werden können, wurden aktualisiert. Titel und Zusammenfassung haben nun die gleiche Farbe, um zu verdeutlichen, dass mit ihnen nicht interagiert werden kann. Sie werden nur zum Anzeigen von Informationen verwendet.
  • Hinweis: Sie können enableCopying="true" zu den nicht auswählbaren Einstellungen hinzufügen, um die Zusammenfassung durch langes Drücken zu kopieren.

Fehlerkorrekturen

  • Eine Regression wurde behoben, bei der die Option „Präferenzkategorie“ und andere nicht auswählbare Einstellungen einen Welleneffekt hatten, wenn sie ausgewählt wurden.
  • Es wurde ein Problem mit der Bedienungshilfe behoben, bei dem TalkBack DropDownPräferenz nicht als anklickbar sah.
  • Einige linksläufige Layoutprobleme wurden behoben.
  • Einige Anmerkungen in PräferenzFragmentCompat, auf denen Nullwerte zulässig sind, wurden aktualisiert, damit sie dem Fragment entsprechen.

Version 1.1.0-alpha04

13. März 2019

androidx.preference:preference:1.1.0-alpha04 und androidx.preference:preference-ktx:1.1.0-alpha04 werden veröffentlicht. Die vollständige Liste der in dieser Version enthaltenen Commits finden Sie hier.

Neue Funktionen

Update zu SeekBarPreference

  • Stil wurde aktualisiert, damit er den Materialspezifikationen entspricht
    • Das Wertelabel ist jetzt standardmäßig ausgeblendet, kann aber weiterhin mit app:showSeekBarValue="true" oder setShowSeekBarValue(true) angezeigt werden. Dieses Label ist nicht Teil der Material-Spezifikationen, aber wir wissen, dass es sehr häufig verwendet wird, und werden es weiterhin unterstützen, auch wenn wir die Verwendung nicht empfehlen.
    • Das Wertlabel wird jetzt aktualisiert, während die SeekBar gezogen wird und nicht, wenn sie loslässt. Beachten Sie, dass dies nicht bedeutet, dass der Wert intern aktualisiert wird. Unten finden Sie eine neue API, die diese Funktion aktiviert.
    • Hinweis: Obwohl dies unterstützt wird, sollten Sie keine Zusammenfassung für eine SeekBarPräferenz festlegen, da dies nicht beabsichtigt ist und nicht Teil der Material-Spezifikation ist.
  • Bietet Unterstützung für kontinuierliche Aktualisierungen, sodass die SeekBar ihren gespeicherten Wert aktualisieren kann, während die SeekBar gezogen wird. Dies kann über XML oder programmatisch mit app:updatesContinuously="true" oder setUpdatesContinuously(true) aktiviert werden. Dies wird immer dann ausgelöst, wenn sich die Position der SeekBar auf dem Bildschirm ändert.

API-Änderungen

  • Fügt findPreference() Anmerkungen zur Null-Zulässigkeit hinzu

Fehlerkorrekturen

  • Es wurde ein Fehler behoben, bei dem Kontextmenü-Listener nicht korrekt entfernt wurden, wenn das Kopieren nicht aktiviert war.

Version 1.1.0-alpha03

7. Februar 2019

androidx.preference:preference 1.1.0-alpha03

androidx.preference:preference 1.1.0-alpha03 und androidx.preference:preference-ktx 1.1.0-alpha03 werden mit den folgenden Änderungen veröffentlicht.

Fehlerkorrekturen

  • Ein Problem wurde behoben, bei dem das Pop-up-Fenster zum Kopieren und Einfügen manchmal nicht im Dialogfeld von EditText preference angezeigt wurde.
  • Ein Problem wurde behoben, bei dem der zugrunde liegende Adapter nicht ordnungsgemäß registriert wurde, was unter bestimmten Bedingungen zu Speicherlecks führte (b/121006469).
  • Einige Dialogabstürze bei Konfigurationsänderungen wurden behoben (b/122167543).
  • Problem behoben, das SummaryProvider nicht für MultiSelectList preference funktioniert (b/123022772)

Version 1.1.0-alpha02

17. Dezember 2018

Sie können auch den kürzlich aktualisierten Leitfaden zu Einstellungen und die Beispiel-App lesen.

Neue Funktionen

  • Neue EditTextPreference.OnBindEditTextListener-Oberfläche. Auf diese Weise kann der EditText, der im entsprechenden Dialogfeld angezeigt wird, angepasst werden, nachdem das Dialogfeld gebunden wurde. Beispielsweise können Sie einen benutzerdefinierten Eingabetyp bzw. eine benutzerdefinierte Eingabelänge festlegen oder einen TextWatcher hinzufügen.

  • Preference.setCopyingEnabled() hinzugefügt. Durch langes Drücken auf die Einstellung wird ein Kontextmenü angezeigt, über das Sie die Zusammenfassung kopieren können. Dies kann verwendet werden, um das Kopieren statischer Informationen wie nutzerspezifische IDs oder Informationen zur Anwendungsversion zu ermöglichen.

  • preferenceTheme wird jetzt auf das Aktivitätsthema angewendet. Das bedeutet, dass du beim Erstellen einer Einstellung aus Code nicht mehr den Kontext von PreferenceManager#getContext() verwenden musst. Stattdessen kannst du einfach deinen Fragment/Activity-Kontext verwenden.

API-Änderungen

  • findPreference() wurde so überarbeitet, dass <T extends Preference> zurückgegeben wird. Das bedeutet, dass Sie bei der Verwendung von findPreferred() Einstellungen nicht explizit umwandeln müssen. Zum Beispiel ist EditTextPreference preference = findPreference(“edit_text”) jetzt gültiger Code.

Version 1.1.0-alpha01

5. November 2018

Neue Funktionen

  • Sie können jetzt einen SummaryProvider für eine Einstellung festlegen, um seine Zusammenfassung dynamisch zu konfigurieren, wenn die Einstellung aktualisiert wird oder für den Nutzer sichtbar wird.
  • Es wurden standardmäßige SummaryProvider-Implementierungen für ListPräferenz und EditTextPreferences hinzugefügt. Wenn diese festgelegt sind, wird die Zusammenfassung der Präferenz automatisch aktualisiert, um den gespeicherten Wert widerzuspiegeln. Wenn kein Wert gespeichert wurde, wird „Not Set“ (Nicht festgelegt) hinzugefügt. Diese können mit app:useSimpleSummaryProvider="true" festgelegt werden.
  • Es wurde eine PräferenzGroup#removePreferredRekursiv hinzugefügt, mit der eine Präferenz rekursiv aus der Gruppe oder einer verschachtelten Gruppe weiter unten in der Hierarchie gesucht und entfernt wird.

API-Änderungen

  • PreferredFragment und andere Klassen, die Framework-Fragmente verwenden, wurden eingestellt. Verwenden Sie stattdessen PräferenzFragmentCompat und andere kompatible Klassen.

Fehlerkorrekturen

  • Problem behoben, bei dem iconSpaceReserviert mit Präferenzkategorien nicht korrekt funktioniert hat.
  • Ein Fehler wurde behoben, der bei PriorityCategories unter API 21 nicht colorAccent für die Titelfarbe verwendet hat.
  • Einige Inkonsistenzen beim SeekBar Preferred-Layout unterhalb von API 21 wurden behoben.