Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Preference

Membuat layar setelan yang interaktif tanpa perlu berinteraksi dengan penyimpanan perangkat atau mengelola UI.
Update Terbaru Rilis Stabil Saat Ini Kandidat Rilis Berikutnya Rilis Beta Rilis Alfa
15 April 2020 1.1.1 - - -

Mendeklarasikan dependensi

Untuk menambahkan dependensi pada Preference, Anda harus menambahkan repositori Maven Google ke project Anda. Baca repositori Maven Google untuk mengetahui informasi selengkapnya.

Tambahkan dependensi untuk artefak yang diperlukan dalam file build.gradle bagi aplikasi atau modul Anda:

    dependencies {
        def preference_version = "1.1.1"

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

Untuk informasi dependensi selengkapnya, lihat Menambahkan Dependensi Build.

Masukan

Masukan Anda membantu meningkatkan kualitas Jetpack. Beri tahu kami jika Anda menemukan masalah baru atau memiliki ide untuk meningkatkan kualitas library ini. Harap lihat masalah yang ada di library ini sebelum Anda membuat laporan baru. Anda dapat memberikan suara pada masalah yang ada dengan mengklik tombol bintang.

Membuat terbitan baru

Baca dokumentasi Issue Tracker untuk mengetahui informasi selengkapnya.

Versi 1.1.1

Versi 1.1.1

15 April 2020

androidx.preference:preference:1.1.1 dan androidx.preference:preference-ktx:1.1.1 dirilis. Versi 1.1.1 berisi commit berikut.

Perbaikan Bug

  • PreferenceDialogFragmentCompat tidak akan lagi menampilkan IllegalStateException saat meng-inflate FragmentContainerView dari xml. (b/150051716)

Pembaruan dependensi

  • Preferensi sekarang bergantung pada Fragmen 1.2.4. (aosp/1277317)
  • Dependensi preference-ktx sekarang bergantung pada androidx.core:core-ktx:1.1.0 dan androidx.fragment:fragment-ktx:1.2.4, mencerminkan dependensi artefak preference utama, dan memastikan bahwa mengupgrade preference-ktx akan mengupdate artefak utama dan artefak -ktx dependensi transitif. (aosp/1277319)

Versi 1.1.0

Versi 1.1.0

5 September 2019

androidx.preference:preference:1.1.0 dan androidx.preference:preference-ktx:1.1.0 dirilis. Commit yang disertakan dalam versi ini dapat dilihat di sini.

Jika baru pernah mengupdate ke rilis 1.1.*, berikut adalah daftar singkat perubahan yang lebih besar sejak rilis stabil terakhir, 1.0.0. Panduan setelan, contoh aplikasi, dan diskusi Android Dev Summit mungkin bermanfaat untuk Anda.

Perubahan penting sejak versi 1.0.0

  • PreferenceFragment dan class lain yang menggunakan Fragment framework kini sudah tidak digunakan lagi; Anda sekarang harus menggunakan PreferenceFragmentCompat dan class *compat lainnya.
  • Anda kini dapat menetapkan SummaryProvider pada Preference untuk mengonfigurasi ringkasannya secara dinamis setiap kali Preference diupdate, atau menjadi dapat dilihat oleh pengguna. Lihat panduan untuk informasi selengkapnya.
  • Menambahkan antarmuka EditTextPreference.OnBindEditTextListener. Penambahan ini memungkinkan penyesuaian EditText yang ditampilkan dalam dialog yang terkait setelah dialog diikat. Penggantian ini merupakan penggantian langsung untuk menggunakan atribut seperti android:inputType secara langsung di EditTextPreference, yang tidak didukung dalam library AndroidX. Lihat panduan untuk informasi selengkapnya.
  • Menambahkan Preference.setCopyingEnabled() Saat ditetapkan, gestur tekan lama pada Preference akan menampilkan menu konteks yang memungkinkan penyalinan ringkasan Preference.
  • Mengupdate gaya SeekBarPreference agar sesuai dengan spesifikasi Material. Silakan lihat log perubahan mendetail untuk mengetahui perubahan SeekBarPreference lainnya.
  • Sejumlah besar perbaikan bug, update gaya, perbaikan kompatibilitas API level, dan peningkatan QOL secara umum.

Versi 1.1.0-rc01

2 Juli 2019

androidx.preference:preference:1.1.0-rc01 dan androidx.preference:preference-ktx:1.1.0-rc01 dirilis. Commit yang disertakan dalam versi ini dapat dilihat di sini.

Perubahan API

  • Menghentikan Preference#onInitializeAccessibilityNodeInfo
  • Metode ini mem-proxy info node aksesibilitas untuk Preference tertentu - tetapi ini adalah lapisan yang salah untuk penyesuaian ini. Jika ingin menyesuaikan informasi aksesibilitas, sebaiknya Anda mengganti onBindViewHolder, dan menambahkan informasi aksesibilitas ke tampilan secara langsung.

Versi 1.1.0-beta01

5 Juni 2019

androidx.preference:preference:1.1.0-beta01 dan androidx.preference:preference-ktx:1.1.0-beta01 dirilis. Commit yang disertakan dalam versi ini dapat dilihat di sini.

Perubahan penting sejak 1.1.0

Jika baru pernah mengupdate ke rilis 1.1.*, berikut adalah daftar singkat perubahan yang lebih besar sejak rilis stabil terakhir, 1.1.0. Panduan setelan, contoh aplikasi, dan diskusi Android Dev Summit mungkin bermanfaat untuk Anda.

  • PreferenceFragment dan class lain yang menggunakan framework Fragment tidak digunakan lagi - sebagai gantinya, Anda harus menggunakan PreferenceFragmentCompat dan class *compat lainnya.
  • Sekarang Anda dapat menetapkan SummaryProvider pada Preference untuk mengonfigurasi ringkasannya secara dinamis setiap kali Preference diupdate, atau menjadi terlihat oleh pengguna. Lihat panduan untuk informasi selengkapnya.
  • Menambahkan antarmuka EditTextPreference.OnBindEditTextListener. Antarmuka ini memungkinkan penyesuaian EditText yang ditampilkan dalam dialog yang terkait setelah dialog diikat. Ini adalah pengganti langsung dari penggunaan atribut seperti android:inputType langsung pada EditTextPreference, yang tidak didukung pada library AndroidX. Lihat panduan untuk informasi selengkapnya.
  • Menambahkan Preference.setCopyingEnabled() Saat ditetapkan, gestur tekan lama pada Preference akan menampilkan menu konteks yang memungkinkan penyalinan ringkasan Preference.
  • Mengupdate gaya SeekBarPreference agar sesuai dengan spesifikasi Material. Lihat changelog terperinci untuk perubahan lain pada SeekBarPreference.
  • Sejumlah besar perbaikan bug, update gaya, perbaikan kompatibilitas API level, dan peningkatan QOL secara umum.

Perubahan API sejak 1.1.0-alpha05

  • Menghapus getOnBindEditTextListener dari API publik. Anda hanya perlu menggunakan setOnBindEditTextListener saat berinteraksi dengan API ini.

Silakan laporkan bug di sini jika Anda mengalami masalah, atau jika memiliki saran untuk fitur baru.

Versi 1.1.0-alpha05

7 Mei 2019

androidx.preference:preference:1.1.0-alpha05 dan androidx.preference:preference-ktx:1.1.0-alpha05 dirilis. Commit yang disertakan dalam versi ini dapat dilihat di sini.

Fitur baru

  • Mengupdate gaya untuk Preference yang tidak dapat dipilih - judul dan ringkasan sekarang menggunakan warna yang sama untuk memperjelas bahwa keduanya tidak dapat diinteraksikan, dan hanya digunakan untuk menampilkan informasi.
  • Catatan: Anda dapat mencoba menambahkan enableCopying="true" ke Preference yang tidak dapat dipilih sehingga Anda dapat menekan lama untuk menyalin ringkasan.

Perbaikan bug

  • Memperbaiki regresi di mana PreferenceCategory dan Preference yang tidak dapat dipilih lainnya memiliki efek domino ketika dipilih
  • Memperbaiki masalah aksesibilitas di mana TalkBack tidak menganggap DropDownPreference sebagai dapat diklik
  • Memperbaiki beberapa masalah tata letak RTL
  • Mengupdate beberapa anotasi nullable di PreferenceFragmentCompat agar sesuai dengan Fragment

Versi 1.1.0-alpha04

13 Maret 2019

androidx.preference:preference:1.1.0-alpha04 dan androidx.preference:preference-ktx:1.1.0-alpha04 dirilis. Daftar lengkap commit yang disertakan dalam versi ini dapat dilihat di sini.

Fitur baru

Pembaruan untuk SeekBarPreference!

  • Memperbarui gaya agar sesuai dengan Spesifikasi Material
    • Label nilai sekarang disembunyikan secara default meskipun masih dapat ditampilkan dengan app:showSeekBarValue="true" atau setShowSeekBarValue(true). Label ini bukan bagian dari spesifikasi Material, tetapi kami memahami bahwa label ini sangat banyak digunakan sehingga kami akan terus mendukungnya - meskipun tidak merekomendasikan penggunaannya.
    • Label nilai sekarang diperbarui saat SeekBar ditarik, bukan saat dilepas. Perhatikan bahwa ini tidak berarti nilai diperbarui secara internal, lihat di bawah untuk API baru yang memungkinkan fungsionalitas tersebut.
    • Catatan: Meskipun didukung, sebaiknya Anda menghindari menetapkan ringkasan pada SeekBarPreference, karena tindakan tersebut tidak dimaksudkan dan bukan bagian dari spesifikasi Material.
  • Menambahkan dukungan untuk update kontinu, yang memungkinkan SeekBar update nilai yang disimpannya saat SeekBar ditarik. Dukungan ini dapat diaktifkan dari XML atau secara terprogram, dengan app:updatesContinuously="true" atau setUpdatesContinuously(true). Dukungan ini akan aktif setiap kali posisi SeekBar di layar berubah.

Perubahan API

  • Menambahkan anotasi nullability yang tidak ada ke findPreference()

Perbaikan bug

  • Memperbaiki bug di mana pemroses menu konteks tidak dihapus dengan benar jika penyalinan tidak diaktifkan

Versi 1.1.0-alpha03

7 Februari 2019

androidx.preference:preference 1.1.0-alpha03

androidx.preference:preference 1.1.0-alpha03 dan androidx.preference:preference-ktx 1.1.0-alpha03 dirilis dengan perubahan berikut ini.

Perbaikan bug

  • Memperbaiki masalah dengan jendela pop-up salin/tempel yang terkadang tidak muncul di dialog EditTextPreference
  • Memperbaiki masalah terkait adaptor dasar yang tidak terdaftar dengan benar sehingga menyebabkan kebocoran memori dalam kondisi tertentu (b/121006469)
  • Memperbaiki beberapa error terkait dialog yang terjadi selama perubahan konfigurasi (b/122167543)
  • Memperbaiki SummaryProvider yang tidak berfungsi untuk MultiSelectListPreference (b/123022772)

Versi 1.1.0-alpha02

17 Desember 2018

Silakan baca juga Panduan setelan dan contoh aplikasi yang baru saja diperbarui.

Fitur baru

  • Menambahkan antarmuka EditTextPreference.OnBindEditTextListener Penambahan ini memungkinkan penyesuaian EditText yang ditampilkan dalam dialog yang sesuai setelah dialog terikat. Misalnya, menetapkan jenis/panjang input kustom atau menambahkan TextWatcher.

  • Menambahkan Preference.setCopyingEnabled() Jika ditetapkan, gestur tekan lama pada Preference akan menampilkan menu konteks yang memungkinkan penyalinan ringkasan Preference. Fitur ini dapat digunakan untuk mengizinkan penyalinan informasi statis seperti ID khusus pengguna/informasi versi aplikasi.

  • preferenceTheme sekarang diterapkan pada tema aktivitas Artinya, saat membuat Preference dari kode, Anda tidak perlu lagi menggunakan konteks dari PreferenceManager#getContext(); cukup gunakan konteks Fragmen/Aktivitas.

Perubahan API

  • Memfaktorkan ulang findPreference() untuk menampilkan <T extends Preference> Artinya, Anda tidak perlu mentransmisikan Preference secara eksplisit saat menggunakan findPreference(). Misalnya, EditTextPreference preference = findPreference(“edit_text”) sekarang adalah kode yang valid.

Versi 1.1.0-alpha01

5 November 2018

Fitur baru

  • Anda kini dapat menetapkan SummaryProvider pada Preference untuk mengonfigurasi ringkasannya secara dinamis setiap kali Preference diperbarui, atau menjadi terlihat oleh pengguna.
  • Menambahkan implementasi SummaryProvider default untuk ListPreference dan EditTextPreference, yang ketika ditetapkan akan otomatis memperbarui ringkasan Preference agar menampilkan nilai tersimpannya, atau 'Not Set' jika tidak ada nilai yang tersimpan. Fitur ini dapat ditetapkan dengan app:useSimpleSummaryProvider=”true”
  • Menambahkan PreferenceGroup#removePreferenceRecursively yang secara berulang menemukan dan menghapus Preference dari grup, atau grup bertingkat yang lebih rendah dalam hierarki.

Perubahan API

  • PreferenceFragment dan class lain yang menggunakan framework Fragmen tidak digunakan lagi. Anda kini dapat menggunakan PreferenceFragmentCompat dan class compat lainnya.

Perbaikan bug

  • Memperbaiki iconSpaceReserved yang tidak berfungsi dengan baik dengan PreferenceCategories.
  • Memperbaiki PreferenceCategories yang tidak menggunakan colorAccent untuk warna judulnya pada API sebelum level 21.
  • Memperbaiki beberapa inkonsistensi tata letak SeekBarPreference pada API sebelum level 21.