Einstellung

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

Abhängigkeiten deklarieren

Um eine Abhängigkeit von der Einstellung hinzuzufügen, müssen Sie das Maven-Repository von Google zu Ihrem Projekt arbeiten. Maven-Repository von Google lesen .

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

Cool

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. Teilen Sie uns mit, wenn Sie neue Ausgaben entdecken oder zur Verbesserung dieser Bibliothek. In der bestehende Probleme in dieser Bibliothek, bevor Sie eine neue erstellen. So können Sie für ein vorhandenes Problem abstimmen: indem Sie auf die Sternschaltfläche klicken.

Neues Problem erstellen

Weitere Informationen finden Sie in der Dokumentation zur Problemverfolgung. .

Version 1.2

Version 1.2.1

26. Juli 2023

androidx.preference:preference:1.2.1 wurde veröffentlicht. Version 1.2.1 enthält diese Commits.

Fehlerkorrekturen

  • PreferenceHeaderFragmentCompat verarbeitet die Schaltfläche „Zurück“ jetzt korrekt, wenn sie in einem ComponentDialog verwendet wird oder wenn Bibliotheken wie @AndroidEntryPoint von Hilt verwendet werden, die die Context des Fragments zusammenfassen.
  • Die Einstellung richtet sich jetzt nach Aktivität 1.5.1. (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 wurden veröffentlicht. Version 1.2.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.1.0

  • Es wurde PreferenceHeaderFragmentCompat für die Zweifenstereinstellung hinzugefügt, die sich automatisch an die Größe des verwendeten Geräts anpasst und somit für Smartphones, faltbare Geräte und Tablets geeignet ist. Der Headerbereich wird bereitgestellt, indem die Methode onCreatePreferenceHeader() für PreferenceHeaderFragmentCompat überschrieben wird. Jedes <Preference> im Header PreferenceFragmentCompat, das app:fragment verwendet, führt dazu, dass dieses Fragment im zweiten Detailbereich erscheint. Das anfängliche Detailfragment, das angezeigt werden soll, bevor eine Einstellung manuell ausgewählt wird, kann durch Überschreiben von onCreateInitialDetailFragment() angepasst werden. Bei der Standardimplementierung wird die erste Einstellung zurückgegeben, für die ein Fragment definiert ist.
class TwoPanePreference : PreferenceHeaderFragmentCompat() {
    override fun onCreatePreferenceHeader(): PreferenceFragmentCompat {
        return PreferenceHeader()
    }
}
  • Anmerkungen zur Null-Zulässigkeit wurden vielen APIs, in denen zuvor weder @NonNull noch @Nullable. Wenn die von Ihnen in Ihrem Kotlin-Code ausgewählte Null-Zulässigkeit nicht mit der jetzt definierten Null-Zulässigkeit übereinstimmt, kann dies zu einer funktionsgefährdenden Änderung für die Kotlin-Quelle führen.

  • PreferenceFragmentCompat sucht jetzt nach Implementierungen der OnPreferenceStartFragmentCallback-, OnNavigateToScreenListener- und OnDisplayPreferenceDialogListener-Schnittstelle für übergeordnete Fragmente und prüft dann, ob der Hostingkontext oder die Aktivität diese Schnittstellen implementiert.

Version 1.2.0-rc01

15. Dezember 2021

androidx.preference:preference:1.2.0-rc01 und androidx.preference:preference-ktx:1.2.0-rc01 wurden 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 wurden veröffentlicht. Version 1.2.0-alpha02 enthält diese Commits.

API-Änderungen

  • Anmerkungen zur Null-Zulässigkeit wurden vielen APIs, in denen zuvor weder @NonNull noch @Nullable. (I04252, Ie2cc0)
  • Die openPreference() API wurde entfernt aus PreferenceHeaderFragmentCompat – diese Methode ist und sollte nicht manuell aufgerufen werden. (Ia6989)

Änderungen im Verhalten

  • PreferenceFragmentCompat-Callbacks für OnNavigateToScreenListener und OnDisplayPreferenceDialogListener folgen jetzt dem gleiches Muster wie OnPreferenceTreeClickListener und die übergeordnete Fragmenthierarchie nach gültigen bevor sie die Hörer schauen, Context oder Activity implementiert diese Schnittstellen. (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 wurden veröffentlicht. Version 1.2.0-alpha01 enthält diese Commits.

Neue Funktionen

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

Änderungen im Verhalten

  • Präferenz-Callbacks für OnPreferenceDisplayDialogCallback, OnPreferenceStartScreenCallback und OnPreferenceStartFragmentCallback können jetzt in einem Nicht-Activity-Kontext implementiert werden. getContext() wird überprüft, um zu sehen, ob diese Callbacks implementiert sind, bevor getActivity() überprüft wird. Wenn getContext() im üblichen Fall eine Aktivität zurückgibt, gibt es keine Verhaltensänderung.

  • PreferenceFragmentCompats Aufruf von onPreferenceTreeClick sucht jetzt nach Implementierungen der OnPreferenceStartFragmentCallback-Schnittstelle für übergeordnete Fragmente, bevor die Implementierung der Aktivität in Betracht gezogen 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 wurden veröffentlicht. Version 1.1.1 enthält diese Commits.

Fehlerkorrekturen

  • PreferenceDialogFragmentCompat löst keinen Fehler mehr aus IllegalStateException beim Aufblähen eines FragmentContainerView aus XML. (b/150051716)

Aktualisierung der Abhängigkeiten

  • Die Präferenz 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 beim Upgrade von preference-ktx sowohl die Haupt- als auch die -ktx-Artefakte der transitiven 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 wurden veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.

Wenn dies die erste 1.1.*-Version ist, auf die du ein Update führst, findest du hier eine kurze Liste mit größeren Änderungen seit der letzten stabilen Version, 1.0.0. Der Leitfaden zu Einstellungen, die Beispiel-App und der Vortrag vom Android Dev Summit könnten ebenfalls hilfreich sein.

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 in einer 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-Oberfläche wurde hinzugefügt. So können Sie das EditText anpassen, das nach dem Binden des Dialogfelds im entsprechenden Dialogfeld angezeigt wird. Dies ist ein direkter Ersatz für die Verwendung von Attributen wie android:inputType direkt auf EditTextPreference, was in der AndroidX-Bibliothek nicht unterstützt wird. Weitere Informationen finden Sie im Leitfaden.
  • Preference.setCopyingEnabled() wurde hinzugefügt. Wenn du lange auf die Einstellung drückst, wird ein Kontextmenü angezeigt, über das du die Zusammenfassung der Einstellung kopieren kannst.
  • 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 Qualitätsstufe

Version 1.1.0-rc01

2. Juli 2019

androidx.preference:preference:1.1.0-rc01 und androidx.preference:preference-ktx:1.1.0-rc01 wurden 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 wurden 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 mit größeren Änderungen seit der letzten stabilen Version 1.1.0. Der Leitfaden zu Einstellungen, die Beispiel-App und der Vortrag vom Android Dev Summit könnten ebenfalls hilfreich sein.

  • PreferenceFragment und andere Klassen, die Framework-Fragmente verwenden, wurden eingestellt. Sie sollten stattdessen PreferenceFragmentCompat und andere *compat-Klassen verwenden.
  • Sie können jetzt einen SummaryProvider für eine Einstellung festlegen, um deren Zusammenfassung dynamisch zu konfigurieren, wenn die Präferenz aktualisiert wird oder für den Nutzer sichtbar wird. Weitere Informationen finden Sie im Leitfaden.
  • EditTextPreference.OnBindEditTextListener-Oberfläche wurde hinzugefügt. So können Sie den EditText anpassen, der nach der Bindung des Dialogfelds im entsprechenden Dialogfeld angezeigt wird. Dies ist ein direkter Ersatz für die Verwendung von Attributen wie android:inputType direkt in EditTextPreference, der in der AndroidX-Bibliothek nicht unterstützt wird. Weitere Informationen finden Sie im Leitfaden.
  • Preference.setCopyingEnabled() wurde hinzugefügt. Wenn du lange auf die Einstellung drückst, wird ein Kontextmenü angezeigt, über das du die Zusammenfassung der Einstellung kopieren kannst.
  • Der Stil von SeekBarPreference wurde so aktualisiert, dass er den Materialspezifikationen entspricht. Weitere Änderungen an SeekBarPreference finden Sie im detaillierten Änderungsprotokoll.
  • Zahlreiche Fehlerkorrekturen, Stilaktualisierungen, Kompatibilitätskorrekturen auf API-Ebene und allgemeine Verbesserungen der Qualitätsstufe

API-Änderungen seit 1.1.0-alpha05

  • Entfernt getOnBindEditTextListener aus der öffentlichen API. Sie müssen bei der Interaktion mit dieser API nur setOnBindEditTextListener verwenden.

Hier kannst du Fehler melden, wenn Probleme auftreten oder du Vorschläge für neue Funktionen hast.

Version 1.1.0-alpha05

7. Mai 2019

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

Neue Funktionen

  • Der Stil für nicht auswählbare Einstellungen wurde aktualisiert: Titel und Zusammenfassung haben jetzt die gleiche Farbe, um zu verdeutlichen, dass keine Interaktion möglich ist. Sie werden nur zur Anzeige von Informationen verwendet.
  • Hinweis: Wenn du enableCopying="true" zu deinen nicht auswählbaren Einstellungen hinzufügen möchtest, kannst du die Zusammenfassung durch langes Drücken kopieren.

Fehlerkorrekturen

  • Es wurde ein Fehler behoben, bei dem die Auswahl von „PreferenceCategory“ und anderen nicht auswählbaren Einstellungen einen Welleneffekt aufwies.
  • Es wurde ein Problem mit den Bedienungshilfen behoben, bei dem DropDownPreference nicht als anklickbar erkannt wurde.
  • Einige Probleme mit dem RTL-Layout wurden behoben.
  • Einige Annotationen, für die Nullwerte zulässig sind, wurden in PreferenceFragmentCompat aktualisiert, damit sie zu Fragment passen

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 wurden veröffentlicht. Die vollständige Liste der in dieser Version enthaltenen Commits finden Sie hier.

Neue Funktionen

Das Update zu SeekBarPreference!

  • Stil entsprechend den Materialspezifikationen aktualisiert <ph type="x-smartling-placeholder">
      </ph>
    • 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 Materialspezifikation, aber uns ist bewusst, dass es häufig verwendet wird. Daher unterstützen wir es weiterhin – auch wenn wir nicht empfehlen, es zu verwenden.
    • Das Wertlabel wird jetzt aktualisiert, während die SeekBar gezogen wird, und nicht beim Loslassen. Dies bedeutet nicht, dass der Wert intern aktualisiert wird. Unten finden Sie eine neue API, mit der diese Funktion aktiviert wird.
    • Hinweis: Obwohl es unterstützt wird, sollten Sie in einer SeekBarPreference keine Zusammenfassung festlegen, da dies nicht beabsichtigt und nicht Teil der Material-Spezifikation ist.
  • Unterstützung für kontinuierliche Updates, 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. Sie wird immer dann ausgelöst, wenn sich die Position der SeekBar auf dem Bildschirm ändert.

API-Änderungen

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

Fehlerkorrekturen

  • Ein Fehler wurde 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 der nach den Änderungen.

Fehlerkorrekturen

  • Es wurde ein Problem behoben, bei dem das Pop-up zum Kopieren und Einfügen im Dialogfeld von EditTextPreference manchmal nicht angezeigt wurde.
  • Es wurde ein Problem behoben, bei dem der zugrunde liegende Adapter nicht ordnungsgemäß abgemeldet wurde, was unter bestimmten Bedingungen zu Speicherlecks führte (b/121006469).
  • Einige Abstürze im Zusammenhang mit Dialogfeldern, die während der Konfigurationsänderung aufgetreten sind, wurden behoben (b/122167543).
  • Problem behoben, bei dem SummaryProvider für MultiSelectListPreference nicht funktioniert (b/123022772)

Version 1.1.0-alpha02

17. Dezember 2018

In der vor Kurzem aktualisierte Einstellungen und Beispiel App.

Neue Funktionen

  • EditTextPreference.OnBindEditTextListener-Oberfläche hinzugefügt So können Sie den im entsprechenden Text angezeigten EditText anpassen nachdem der Dialog gebunden wurde. Beispielsweise kann das Festlegen eines benutzerdefinierten Längen- und Eingabetyp oder TextWatcher hinzufügen.

  • Preference.setCopyingEnabled()“ wurde hinzugefügt Wenn die Einstellung festgelegt ist, wird durch langes Gedrückthalten der Einstellung ein Kontextmenü angezeigt, über das du die Zusammenfassung der Einstellung kopieren kannst. Damit kann das Kopieren statischer Informationen wie nutzerspezifischer IDs oder Informationen zur Anwendungsversion ermöglicht werden.

  • Das „preferencesTheme“ wird jetzt auf das Aktivitätsdesign angewendet. Das bedeutet, dass Sie beim Erstellen einer Präferenz aus Code nicht mehr den Kontext aus PreferenceManager#getContext() verwenden müssen, sondern einfach Ihren Fragment-/Aktivitätskontext verwenden können.

API-Änderungen

  • findPreference() wurde so umgestaltet, dass <T extends Preference> zurückgegeben wird Das bedeutet, dass Sie Einstellungen nicht explizit übertragen müssen, wenn Sie findPreference() verwenden. Beispiel: EditTextPreference preference = findPreference(“edit_text”) ist jetzt ein gültiger Code.

Version 1.1.0-alpha01

5. November 2018

Neue Funktionen

  • Sie können jetzt einen SummaryProvider für eine Präferenz festlegen, um seine Zusammenfassung, wenn die Einstellung aktualisiert wird oder für den Nutzer sichtbar wird.
  • Es wurden Standard-SummaryProvider-Implementierungen für ListPreference und EditTextPreference, bei dem die Zusammenfassung der Vorzugsweise der gespeicherten Wert oder „Nicht festgelegt“, wenn kein Wert gespeichert wurde. Diese können mit app:useSimpleSummaryProvider="true" festgelegt werden
  • PreferenceGroup#removePreferenceRecursically wurde hinzugefügt, das rekursiv sucht und entfernt eine Einstellung aus der Gruppe oder eine verschachtelte Gruppe weiter unten in der Hierarchie.

API-Änderungen

  • PreferenceFragment und andere Klassen, die Framework-Fragmente verwenden, wurden Verworfen – Sie sollten PreferenceFragmentCompat und andere Compat-Klassen verwenden .

Fehlerkorrekturen

  • Ein Problem wurde behoben, durch das „iconSpaceReserviert“ nicht richtig mit PreferenceCategories funktionierte.
  • Problem behoben, bei dem in PreferenceCategories die Farbe des Titels nicht verwendet wurde API 21 herunter.
  • Einige Inkonsistenzen beim SeekBarPreference-Layout unter API 21 wurden behoben.