Setelan Part of Android Jetpack.
Dengan setelan, pengguna bisa mengubah fungsionalitas dan perilaku aplikasi. Setelan bisa memengaruhi perilaku latar belakang, seperti seberapa sering aplikasi menyinkronkan data dengan cloud, atau bisa menjangkau lebih luas, seperti mengubah konten dan tampilan antarmuka pengguna.
Cara yang disarankan untuk mengintegrasikan setelan yang dapat dikonfigurasi oleh pengguna ke aplikasi Anda adalah dengan menggunakan AndroidX Preference Library. Library ini mengelola antarmuka pengguna dan berinteraksi dengan penyimpanan sehingga Anda hanya menentukan setelan masing-masing yang dapat dikonfigurasikan oleh pengguna. Library dilengkapi dengan tema Material yang memberikan pengalaman pengguna yang konsisten di berbagai perangkat dan versi OS.
Memulai
Preference
Adalah blok bangunan dasar Preference Library. Layar setelan berisi hierarki Preference
__. Anda dapat menentukan hierarki ini sebagai resource XML, atau Anda dapat membuat hierarki dalam kode.
Bagian di bawah ini menjelaskan cara membuat layar setelan sederhana menggunakan AndroidX Preference Library.
Membuat hierarki
Contoh berikut memperlihatkan hierarki sederhana yang ditentukan melalui XML:
<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto"> <SwitchPreferenceCompat app:key="notifications" app:title="Enable message notifications"/> <Preference app:key="feedback" app:title="Send feedback" app:summary="Report technical issues or suggest new features"/> </PreferenceScreen>
Hierarki ini berisi dua Preferences
terpisah: SwitchPreferenceCompat
yang memungkinkan pengguna untuk mengaktifkan atau menonaktifkan setelan, dan Preference
dasar tanpa widget.
Saat membangun hierarki, setiap Preference
harus memiliki kunci unik.
Menggelembungkan hierarki
Untuk menggelembungkan hierarki dari atribut XML, buat PreferenceFragmentCompat
, timpa onCreatePreferences()
, dan sediakan resource XML untuk menggelembungkan, seperti yang ditunjukkan pada contoh di bawah ini:
Kotlin
class MySettingsFragment : PreferenceFragmentCompat() { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.preferences, rootKey) } }
Java
public class MySettingsFragment extends PreferenceFragmentCompat { @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { setPreferencesFromResource(R.xml.preferences, rootKey); } }
Selanjutnya, Anda dapat menambahkan Fragment
ini ke Activity
Anda seperti yang Anda lakukan dengan Fragment
lainnya:
Kotlin
class MySettingsActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) supportFragmentManager .beginTransaction() .replace(R.id.settings_container, MySettingsFragment()) .commit() } }
Java
public class MySettingsActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getSupportFragmentManager() .beginTransaction() .replace(R.id.settings_container, new MySettingsFragment()) .commit(); } }