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();
    }
}