Vorlieben

Sie können interaktive Einstellungsbildschirme erstellen, ohne auf den Gerätespeicher zugreifen oder die Benutzeroberfläche verwalten zu müssen.
Letzte Aktualisierung Stabile Release Releasekandidat Beta-Release Alpha-Release
26. Juli 2023 1.2.1 - - -

Abhängigkeiten deklarieren

Wenn Sie eine Abhängigkeit von Preference hinzufügen möchten, 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 App oder Ihr Modul die Abhängigkeiten für die benötigten Artefakte hinzu:

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

Ihr Feedback hilft uns, Jetpack zu verbessern. Wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben, lassen Sie es uns wissen. Bevor Sie ein neues Problem erstellen, sollten Sie sich jedoch die bereits gemeldeten Probleme in dieser Bibliothek ansehen. Wenn Sie sich einer Problemmeldung anschließen möchten, klicken Sie auf den Button mit dem Stern.

Neues Problem melden

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 ist veröffentlicht. Version 1.2.1 enthält diese Commits.

Fehlerkorrekturen

  • PreferenceHeaderFragmentCompat verarbeitet jetzt den System-Button „Zurück“ korrekt, wenn sie in einem ComponentDialog oder bei Verwendung von Bibliotheken wie @AndroidEntryPoint von Hilt verwendet wird, die die Context des Fragments umschließen.
  • Die Einstellung hängt jetzt von Activity 1.5.1 ab. (Ie5d22)
  • PreferenceHeaderFragmentCompat.onCreateInitialDetailFragment übergibt jetzt header.extras als Fragment-Argumente.

Version 1.2.0

26. Januar 2022

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

Wichtige Änderungen seit Version 1.1.0

  • PreferenceHeaderFragmentCompat für die zweispaltige Ansicht hinzugefügt, die sich automatisch an die Größe des verwendeten Geräts anpasst und somit für Smartphones, Falt- und Tablet-Geräte geeignet ist. Die Kopfzeile wird durch Überschreiben der Methode onCreatePreferenceHeader() in PreferenceHeaderFragmentCompat bereitgestellt. Jedes <Preference> im Header PreferenceFragmentCompat, das app:fragment verwendet, führt dazu, dass das Fragment im zweiten Detailbereich angezeigt wird. Das erste 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()
    }
}
  • Viele APIs, in denen zuvor @NonNull oder @Nullable nicht angegeben war, wurden mit Null-Zulässigkeits-Annotationen versehen. Dies ist eine potenziell funktionsgefährdende Änderung für Kotlin, wenn die von Ihnen in Ihrem Kotlin-Code ausgewählte Null-Zulässigkeit nicht mit der jetzt definierten Null-Zulässigkeit übereinstimmt.

  • PreferenceFragmentCompat sucht jetzt nach Implementierungen der Schnittstellen OnPreferenceStartFragmentCallback, OnNavigateToScreenListener und OnDisplayPreferenceDialogListener in übergeordneten Fragmenten, bevor geprüft wird, ob der Hosting-Kontext oder die Hosting-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 werden ohne Änderungen seit 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 Preference 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 sind veröffentlicht. Version 1.2.0-alpha02 enthält diese Commits.

API-Änderungen

  • Viele APIs, in denen zuvor @NonNull oder @Nullable nicht angegeben war, wurden mit Null-Zulässigkeits-Annotationen versehen. (I04252, Ie2cc0)
  • Die openPreference()-API wurde aus PreferenceHeaderFragmentCompat entfernt. Diese Methode wird für Sie aufgerufen und sollte nicht manuell aufgerufen werden. (Ia6989)

Geändertes Verhalten

  • PreferenceFragmentCompat-Callbacks für OnNavigateToScreenListener und OnDisplayPreferenceDialogListener folgen jetzt demselben Muster wie OnPreferenceTreeClickListener und suchen in der Hierarchie des übergeordneten Fragments nach gültigen Listenern, bevor geprüft wird, ob der Hosting-Kontext oder die Hosting-Aktivität diese Schnittstellen implementiert. (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 sind veröffentlicht. Version 1.2.0-alpha01 enthält diese Commits.

Neue Funktionen

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

Geändertes Verhalten

  • Die Preference-Callbacks für OnPreferenceDisplayDialogCallback, OnPreferenceStartScreenCallback und OnPreferenceStartFragmentCallback können jetzt in einem Context implementiert werden, der keine Activity ist. getContext() wird geprüft, um festzustellen, ob diese Callbacks implementiert werden, bevor getActivity() geprüft wird. Wenn getContext() eine Activity zurückgibt (der häufige Fall), ändert sich das Verhalten nicht.

  • Beim Aufruf von onPreferenceTreeClick durch PreferenceFragmentCompat wird jetzt zuerst nach Implementierungen der OnPreferenceStartFragmentCallback-Schnittstelle in übergeordneten Fragmenten gesucht, 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 sind veröffentlicht. Version 1.1.1 enthält diese Commits.

Fehlerkorrekturen

  • PreferenceDialogFragmentCompat löst beim Aufblasen eines FragmentContainerView aus XML keinen IllegalStateException mehr aus. (b/150051716)

Abhängigkeitsupdates

  • Die Einstellung hängt jetzt vom 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. Das spiegelt die Abhängigkeiten des Hauptartefakts preference wider und sorgt dafür, dass beim Aktualisieren von preference-ktx sowohl das Haupt- als auch das -ktx-Artefakt 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 sind veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.

Wenn dies das erste 1.1.*-Release ist, auf das Sie aktualisieren, finden Sie hier eine kurze Liste der größeren Änderungen seit dem letzten stabilen Release, 1.0.0. Möglicherweise sind auch der Leitfaden zu den Einstellungen, die Beispiel-App und der Vortrag beim Android Dev Summit hilfreich.

Wichtige Änderungen seit Version 1.0.0

  • PreferenceFragment und andere Klassen, die Framework-Fragmente verwenden, sind veraltet. Sie sollten stattdessen PreferenceFragmentCompat und andere *compat-Klassen verwenden.
  • Sie können jetzt eine SummaryProvider für eine Einstellung festlegen, um die Zusammenfassung dynamisch zu konfigurieren, wenn die Einstellung aktualisiert wird oder für den Nutzer sichtbar wird. Weitere Informationen finden Sie in diesem Leitfaden.
  • Die EditTextPreference.OnBindEditTextListener-Schnittstelle wurde hinzugefügt. So kann die EditText, die im entsprechenden Dialogfeld angezeigt wird, angepasst werden, nachdem das Dialogfeld gebunden wurde. Dies ist ein direkter Ersatz für die Verwendung von Attributen wie android:inputType direkt für EditTextPreference, was in der AndroidX-Bibliothek nicht unterstützt wird. Weitere Informationen finden Sie in diesem Leitfaden.
  • Preference.setCopyingEnabled() hinzugefügt: Wenn diese Option festgelegt ist, wird durch langes Drücken auf die Einstellung ein Kontextmenü angezeigt, in dem die Zusammenfassung der Einstellung kopiert werden kann.
  • Das SeekBarPreference-Styling wurde aktualisiert, um den Material-Spezifikationen zu entsprechen. Weitere Änderungen an SeekBarPreference finden Sie im detaillierten Änderungs-Log.
  • Viele Fehlerkorrekturen, Stilaktualisierungen, Korrekturen der API-Level-Kompatibilität und allgemeine Verbesserungen der Nutzerfreundlichkeit.

Version 1.1.0-rc01

2. Juli 2019

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

API-Änderungen

  • Preference#onInitializeAccessibilityNodeInfo einstellen
  • Mit dieser Methode wurden Informationen zum Barrierefreiheitsknoten für eine bestimmte Einstellung bereitgestellt. Das ist jedoch die falsche Ebene für diese Anpassung. Wenn Sie die Informationen zur Barrierefreiheit anpassen möchten, sollten Sie stattdessen „onBindViewHolder“ überschreiben und der Ansicht direkt Informationen zur Barrierefreiheit 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 sind veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.

Wichtige Änderungen seit Version 1.1.0

Wenn Sie zum ersten Mal auf eine 1.1.*-Version aktualisieren, finden Sie hier eine kurze Liste der größeren Änderungen seit der letzten stabilen Version 1.1.0. Möglicherweise sind auch der Leitfaden zu den Einstellungen, die Beispiel-App und der Vortrag beim Android Dev Summit hilfreich.

  • PreferenceFragment und andere Klassen, die Framework-Fragmente verwenden, sind veraltet. Verwenden Sie stattdessen PreferenceFragmentCompat und andere *compat-Klassen.
  • Sie können jetzt einen SummaryProvider für eine Preference festlegen, um die Zusammenfassung dynamisch zu konfigurieren, wenn die Preference aktualisiert wird oder für den Nutzer sichtbar wird. Weitere Informationen finden Sie in diesem Leitfaden.
  • Die EditTextPreference.OnBindEditTextListener-Schnittstelle wurde hinzugefügt. Dadurch kann das im entsprechenden Dialogfeld angezeigte EditText angepasst werden, nachdem das Dialogfeld gebunden wurde. Dies ist ein direkter Ersatz für die Verwendung von Attributen wie „android:inputType“ direkt in der EditTextPreference, die in der AndroidX-Bibliothek nicht unterstützt wird. Weitere Informationen finden Sie in diesem Leitfaden.
  • Preference.setCopyingEnabled() hinzugefügt: Wenn diese Option festgelegt ist, wird durch langes Drücken auf die Einstellung ein Kontextmenü angezeigt, in dem die Zusammenfassung der Einstellung kopiert werden kann.
  • Das Styling von SeekBarPreference wurde aktualisiert, um den Material-Spezifikationen zu entsprechen. Weitere Änderungen an SeekBarPreference finden Sie im detaillierten Changelog.
  • Viele Fehlerkorrekturen, Stilaktualisierungen, Korrekturen der API-Level-Kompatibilität und allgemeine Verbesserungen der Nutzerfreundlichkeit.

API-Änderungen seit Version 1.1.0-alpha05

  • Entfernt „getOnBindEditTextListener“ aus der öffentlichen API. „setOnBindEditTextListener“ sollte nur bei der Interaktion mit dieser API verwendet werden.

Wenn Probleme auftreten oder Sie Vorschläge für neue Funktionen haben, melden Sie uns diese bitte hier.

Version 1.1.0-alpha05

7. Mai 2019

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

Neue Funktionen

  • Das Design für nicht auswählbare Einstellungen wurde aktualisiert. Titel und Zusammenfassung haben jetzt dieselbe Farbe, um deutlich zu machen, dass sie nicht interaktiv sind und nur zum Anzeigen von Informationen verwendet werden.
  • Hinweis: Es empfiehlt sich, enableCopying="true" zu den nicht auswählbaren Einstellungen hinzuzufügen, damit Nutzer die Zusammenfassung durch langes Drücken kopieren können.

Diverse Fehlerkorrekturen

  • Es wurde ein Fehler behoben, bei dem die Auswahl von „PreferenceCategory“ und anderen nicht auswählbaren Einstellungen einen Ripple-Effekt hatte.
  • Ein Bedienungshilfenproblem wurde behoben, bei dem DropDownPreference in TalkBack nicht als anklickbar erkannt wurde.
  • Einige Probleme mit dem RTL-Layout behoben
  • Einige Nullable-Anmerkungen in PreferenceFragmentCompat wurden aktualisiert, damit sie mit Fragment übereinstimmen.

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

Neue Funktionen

Das SeekBarPreference-Update!

  • Das Styling wurde aktualisiert, um den Material-Spezifikationen zu entsprechen.
    • Die Wertbezeichnung ist jetzt standardmäßig ausgeblendet, kann aber weiterhin mit app:showSeekBarValue="true" oder setShowSeekBarValue(true) angezeigt werden. Dieses Label ist nicht Teil der Material-Spezifikation, wird aber häufig verwendet. Wir werden es daher weiterhin unterstützen, auch wenn wir davon abraten.
    • Das Wertlabel wird jetzt aktualisiert, während der SeekBar gezogen wird, und nicht erst, wenn er losgelassen wird. Das bedeutet jedoch nicht, dass der Wert intern aktualisiert wird. Unten finden Sie eine neue API, die diese Funktion ermöglicht.
    • Hinweis: Obwohl es unterstützt wird, sollten Sie für SeekBarPreference keine Zusammenfassung festlegen, da dies nicht vorgesehen ist und nicht Teil der Material-Spezifikation ist.
  • Unterstützung für kontinuierliche Aktualisierungen wird hinzugefügt, sodass der gespeicherte Wert der SeekBar aktualisiert werden kann, während die SeekBar gezogen wird. Dies kann über XML oder programmatisch mit app:updatesContinuously="true" oder setUpdatesContinuously(true) aktiviert werden. Dieses Ereignis 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.

Diverse Fehlerkorrekturen

  • Ein Fehler wurde behoben, bei dem Kontextmenü-Listener nicht richtig entfernt wurden, wenn das Kopieren nicht aktiviert ist.

Version 1.1.0-alpha03

07. 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.

Diverse Fehlerkorrekturen

  • Ein Problem wurde behoben, bei dem das Pop-up zum Kopieren/Einfügen manchmal nicht im Dialogfeld von EditTextPreference angezeigt wurde.
  • Ein Problem wurde behoben, bei dem der zugrunde liegende Adapter nicht richtig abgemeldet wurde, was unter bestimmten Bedingungen zu Speicherlecks führte (b/121006469).
  • Es wurden einige dialogbezogene Abstürze behoben, die bei Konfigurationsänderungen aufgetreten sind (b/122167543).
  • Das Problem, dass SummaryProvider für MultiSelectListPreference nicht funktioniert, wurde behoben (b/123022772).

Version 1.1.0-alpha02

17. Dezember 2018

Sehen Sie sich auch den kürzlich aktualisierten Leitfaden für Einstellungen und die Beispiel-App an.

Neue Funktionen

  • EditTextPreference.OnBindEditTextListener-Schnittstelle hinzugefügt Dadurch kann das im entsprechenden Dialogfeld angezeigte EditText angepasst werden, nachdem das Dialogfeld gebunden wurde. Sie können beispielsweise einen benutzerdefinierten Eingabetyp bzw. eine benutzerdefinierte Eingabelänge festlegen oder einen TextWatcher hinzufügen.

  • Preference.setCopyingEnabled() hinzugefügt Wenn diese Option festgelegt ist, wird durch langes Drücken auf die Einstellung ein Kontextmenü angezeigt, in dem die Zusammenfassung der Einstellung kopiert werden kann. Damit kann das Kopieren statischer Informationen wie nutzerspezifischer IDs oder Informationen zur Anwendungsversion ermöglicht werden.

  • „preferenceTheme“ wird jetzt auf das Aktivitätsthema angewendet. Das bedeutet, dass Sie beim Erstellen einer Preference aus dem Code nicht mehr den Kontext aus PreferenceManager#getContext() verwenden müssen, sondern einfach den Kontext Ihres Fragments oder Ihrer Aktivität.

API-Änderungen

  • findPreference() wurde umgestaltet, um <T extends Preference> zurückzugeben. Das bedeutet, dass Sie beim Verwenden von findPreference() nicht explizit Preferences casten müssen. Beispiel: EditTextPreference preference = findPreference(“edit_text”) ist jetzt gültiger Code.

Version 1.1.0-alpha01

5. November 2018

Neue Funktionen

  • Sie können jetzt einen SummaryProvider für eine Preference festlegen, um die Zusammenfassung dynamisch zu konfigurieren, wenn die Preference aktualisiert wird oder für den Nutzer sichtbar wird.
  • Es wurden Standardimplementierungen von SummaryProvider für ListPreference und EditTextPreference hinzugefügt. Wenn diese festgelegt sind, wird die Zusammenfassung der Preference automatisch aktualisiert, um den gespeicherten Wert widerzuspiegeln. Wenn kein Wert gespeichert wurde, wird „Not Set“ (Nicht festgelegt) angezeigt. Diese können mit app:useSimpleSummaryProvider=“true” festgelegt werden.
  • Die Methode „PreferenceGroup#removePreferenceRecursively“ wurde hinzugefügt. Sie sucht rekursiv nach einer Einstellung in der Gruppe oder einer verschachtelten Gruppe weiter unten in der Hierarchie und entfernt sie.

API-Änderungen

  • PreferenceFragment und andere Klassen, die Framework-Fragments verwenden, sind veraltet. Verwenden Sie stattdessen PreferenceFragmentCompat und andere Compat-Klassen.

Diverse Fehlerkorrekturen

  • Das Problem, dass „iconSpaceReserved“ bei PreferenceCategories nicht richtig funktioniert hat, wurde behoben.
  • Das Problem, dass PreferenceCategories unter API 21 nicht „colorAccent“ für die Farbe des Titels verwendet haben, wurde behoben.
  • Es wurden einige Layout-Inkonsistenzen bei SeekBarPreference unter API 21 behoben.