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

Spinner

Spinner menyediakan cara cepat untuk memilih salah satu dari sekumpulan nilai. Dalam status default, spinner menampilkan nilai yang dipilihnya saat ini. Menyentuh spinner akan menampilkan menu drop-down bersama semua nilai lain yang tersedia, yang memungkinkan pengguna memilih salah satunya.

Anda bisa menambahkan spinner ke layout dengan objek Spinner. Anda biasanya harus melakukannya dalam layout XML dengan elemen <Spinner>. Sebagai contoh:

<Spinner
    android:id="@+id/planets_spinner"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />

Untuk mengisi spinner dengan daftar pilihan, Anda perlu menetapkan SpinnerAdapter dalam kode sumber Activity atau Fragment Anda.

Kelas-kelas utama adalah berikut ini:

Mengisi Spinner dengan Pilihan Pengguna

Pilihan yang Anda sediakan untuk spinner bisa berasal dari sumber apa saja, namun harus disediakan melalui SpinnerAdapter, seperti ArrayAdapter jika pilihan tersedia dalam larik atau CursorAdapter jika pilihan tersedia dari kueri database.

Sebagai contoh, jika pilihan yang tersedia untuk spinner sudah ditentukan sebelumnya, Anda bisa memberinya larik string yang didefinisikan dalam file sumber daya string:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="planets_array">
        <item>Mercury</item>
        <item>Venus</item>
        <item>Earth</item>
        <item>Mars</item>
        <item>Jupiter</item>
        <item>Saturn</item>
        <item>Uranus</item>
        <item>Neptune</item>
    </string-array>
</resources>

Dengan larik seperti yang satu ini, Anda bisa menggunakan kode berikut dalam Activity atau Fragment untuk menyediakan spinner dengan larik menggunakan instance ArrayAdapter:

Kotlin

val spinner: Spinner = findViewById(R.id.spinner)
// Create an ArrayAdapter using the string array and a default spinner layout
ArrayAdapter.createFromResource(
        this,
        R.array.planets_array,
        android.R.layout.simple_spinner_item
).also { adapter ->
    // Specify the layout to use when the list of choices appears
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
    // Apply the adapter to the spinner
    spinner.adapter = adapter
}

Java

Spinner spinner = (Spinner) findViewById(R.id.spinner);
// Create an ArrayAdapter using the string array and a default spinner layout
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
        R.array.planets_array, android.R.layout.simple_spinner_item);
// Specify the layout to use when the list of choices appears
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
spinner.setAdapter(adapter);

Metode createFromResource() memungkinkan Anda membuat ArrayAdapter dari larik string. Argumen ketiga untuk metode ini adalah sumber daya layout yang mendefinisikan bagaimana pilihan yang dipilih muncul dalam kontrol spinner. Layout simple_spinner_item disediakan oleh platform dan merupakan layout default yang harus Anda gunakan, kecuali jika Anda ingin mendefinisikan layout sendiri untuk tampilan spinner.

Kemudian Anda harus memanggil setDropDownViewResource(int) untuk menetapkan layout yang harus digunakan adaptor untuk menampilkan daftar pilihan spinner (simple_spinner_dropdown_item adalah layout standar lainnya yang didefinisikan oleh platform).

Panggil setAdapter() untuk menerapkan adaptor ke Spinner Anda.

Merespons Pilihan Pengguna

Jika pengguna memilih sebuah item dari menu drop-down, objek Spinner akan menerima peristiwa saat-item-dipilih.

Untuk mendefinisikan handler peristiwa pemilihan untuk spinner, implementasikan antarmuka AdapterView.OnItemSelectedListener dan metode callback onItemSelected() yang bersangkutan. Misalnya, ini adalah implementasi antarmuka dalam Activity:

Kotlin

class SpinnerActivity : Activity(), AdapterView.OnItemSelectedListener {

    override fun onItemSelected(parent: AdapterView<*>, view: View, pos: Int, id: Long) {
        // An item was selected. You can retrieve the selected item using
        // parent.getItemAtPosition(pos)
    }

    override fun onNothingSelected(parent: AdapterView<*>) {
        // Another interface callback
    }
}

Java

public class SpinnerActivity extends Activity implements OnItemSelectedListener {
    ...

    public void onItemSelected(AdapterView<?> parent, View view,
            int pos, long id) {
        // An item was selected. You can retrieve the selected item using
        // parent.getItemAtPosition(pos)
    }

    public void onNothingSelected(AdapterView<?> parent) {
        // Another interface callback
    }
}

AdapterView.OnItemSelectedListener memerlukan metode callback onItemSelected() dan onNothingSelected().

Kemudian Anda perlu menetapkan implementasi antarmuka dengan memanggil setOnItemSelectedListener():

Kotlin

val spinner: Spinner = findViewById(R.id.spinner)
spinner.onItemSelectedListener = this

Java

Spinner spinner = (Spinner) findViewById(R.id.spinner);
spinner.setOnItemSelectedListener(this);

Jika Anda mengimplementasikan antarmuka AdapterView.OnItemSelectedListener dengan Activity atau Fragment (misalnya contoh di atas), Anda bisa meneruskan this sebagai instance antarmuka.