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 tata letak XML dengan elemen <Spinner>
. Contoh:
<Spinner android:id="@+id/planets_spinner" android:layout_width="match_parent" android:layout_height="wrap_content" />
Untuk mengisi spinner dengan daftar pilihan, Anda perlu menetapkan SpinnerAdapter
dalam kode sumber
Activity
atau Fragment
Anda.
Class utama adalah sebagai berikut:
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 array atau CursorAdapter
jika pilihan tersedia
dari kueri database.
Sebagai contoh, jika pilihan yang tersedia untuk spinner sudah ditentukan sebelumnya, Anda bisa memberinya array string yang didefinisikan dalam file resource 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 array seperti yang satu ini, Anda bisa menggunakan kode berikut dalam Activity
atau Fragment
untuk menyediakan spinner dengan array 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 array string. Argumen ketiga untuk
metode ini adalah resource tata letak yang mendefinisikan tampilan pilihan yang ditetapkan saat muncul dalam
kontrol spinner. Tata letak simple_spinner_item
disediakan oleh
platform dan merupakan tata letak default yang harus Anda gunakan, kecuali jika Anda ingin mendefinisikan tata letak
sendiri untuk tampilan spinner.
Kemudian Anda harus memanggil setDropDownViewResource(int)
untuk
menetapkan tata letak yang harus digunakan adaptor untuk menampilkan daftar pilihan spinner (simple_spinner_dropdown_item
adalah tata letak standar lainnya yang didefinisikan oleh
platform).
Panggil setAdapter()
untuk menerapkan adaptor ke
Spinner
Anda.
Merespons Pilihan Pengguna
Jika pengguna memilih item dari menu drop-down, objek Spinner
akan
menerima peristiwa pada-item-dipilih.
Untuk mendefinisikan pengendali peristiwa pilihan pada spinner, implementasikan antarmuka AdapterView.OnItemSelectedListener
dan metode callback onItemSelected()
terkait.
Misalnya, berikut 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.