Cara membuat spinner menu pada android studio menggunakan bahasa pemrograman kotlin.
Selamat malam teman-teman, jumpa lagi dengan kak mitra, kali ini kak mitra akan share penglaman kakak tentang android programing menggunakan kotlin. yeeee,,,,
Kali ini kak mitra akan share tentang cara membuat menu spinner pada android kotlin, apa itu spinner? spinner itu seperti menu input misalnya kalau di HTML kita mengenalnya seperti dropdown/selected udah tau bukan. misal ada opsi pria/wanita, opsi pilihan kota dan lain-lain, pasti teman-teman sudah pada tau kan yaa.. untuk penampakannya kurang lebih seperti gambar berikut ini ya teman-teman.
Naah, kalau ada gambar pasti sudah paham apa maksud kak mitra, hehehe kadang saya juga susah memahami kalu via diskripsi, lebih suka dijelaskan yang ada gambar atau diagramnya, heheh
Pada artikel ini kak mitra akan membagi menjadi 2 bagian ya teman-teman.
1. Bagian satu akan menggunakan data dari string.xml (statis)
2. Sedangkan bagian dua akan menggunakan string aray dari kotlin (dinamis)
Bagian 1 : Cara membuat Spinner statis
Oke kita akan membuat spinner (kalau di html namanya dropdown atau select) secara statis . kita akan memulai dengan bagian satu terlebih dahulu. Spinner statis ini sangat cocok untuk membatasi user. maksud dari statis di sini adalah opsi-opsi sudah ditentukan sebelumnya oleh programer, jadi user tidak bisa memilih opsi selain yang disediakan. misal di opsi pendaftaran siswa statis ini hanya ada "Pria" dan "Wanita" jadi user hanya bisa memilih "Pria" dan "Wanita" saja dan user tidak bisa menggunakan opsi yang tidak ada selain "Pria" atau "Wanita".
Oke berikut adalah langkah-langkah membuat spinner statis menggunakan kotlin ya teman-teman
- Buat projek baru, di sini kakak menggunakan nama SpinnerCoba (bersifat opsional, teman-teman bisa merubah sesuai dengan selera teman-teman)
1 Pada file strings.xml lalu isikan code berikut ini yaa :
Naah ini yang kak mitra maksud sebagai spinner statis, jadi intinya spinner ini akan mengambil data-data di bawah ini untuk digunakan opsi yang nantinya akan dipilih oleh user.
User hanya bisa memilih satu dari pilihan opsi(Negara) ini..
<resources>
<string name="app_name">SpinnerCoba</string>
<string name="selected_item">Pilih item:</string>
<string-array name="Languages">
<item>Indonesia</item>
<item>Jawa</item>
<item>Inggris</item>
<item>Rusia</item>
<item>Amerika</item>
<item>Malaysia</item>
</string-array>
</resources>
Yang kak mitra tambahkan adalah pada "selected_item dan Languages" oke cukup sekian yaa, kita lanjut
2 Sekrang kita pergi ke file activity_main.xml buat seperti ini ya teman-teman
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="32dp"
tools:context=".MainActivity">
<TextView
android:id="@+id/txtView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:text="Select language:"
android:textSize="20dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/txtView"
android:layout_marginTop="32dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/txtView" />
</androidx.constraintlayout.widget.ConstraintLayout>
Fokuskan saja pada <TextView> dan <Spinner> Oke cukup itu aja.
3 Sekarang kita ke MainActivity.kt buat seperti ini ya teman -teman
package com.example.spinnercoba
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.view.View
import android.widget.AdapterView
import android.widget.ArrayAdapter
import android.widget.Spinner
import android.widget.Toast
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// access the items of the list
val languages = resources.getStringArray(R.array.Languages)
// access the spinner
val spinner = findViewById<Spinner>(R.id.spinner)
if (spinner != null) {
val adapter = ArrayAdapter(this,
android.R.layout.simple_spinner_item, languages)
spinner.adapter = adapter
spinner.onItemSelectedListener = object :
AdapterView.OnItemSelectedListener {
override fun onItemSelected(parent: AdapterView<*>,
view: View, position: Int, id: Long) {
Toast.makeText(this@MainActivity,
getString(R.string.selected_item) + " " +
"" + languages[position], Toast.LENGTH_SHORT).show()
Log.d("logTag",getString(R.string.selected_item) )
}
override fun onNothingSelected(parent: AdapterView<*>) {
// write code to perform some action
}
}
}
}
}
okkk.. setelah itu kita Run saja aplikasi kita teman-teman dan chek apakah spinner sudah berjalan dengan baik, coba teman-teman pilih bahasa indonesai atau bahasa Jawa misalnya, apakah sudah muncul toast? apabila sudah muncul.. selamat ya teman-teman
Bagian 2 : Cara membuat Spinner data dinamis
oke oke.. sekrang sesuai janji kakak akan menggunakan spinner namun menggunakan data dinamis data dinamis. maksudnya data dinamis itu begini ya teman-teman. kalau dari data statis kan misal hanya berisi "Pria" dan "Wanita" maka user hanya bisa memilih satu dari opsi yang sudah disedikakan. berbeda dengan data dinamis,, apa bila menggunakan data dinamis maka opsi bisa berubah-ubah secara dinamis. misal di awal hanya ada opsi "Pria", "wanita" dan saat program berjalan membutuhkan opsi "Waria" maka dengan data dinamis ini bisa dilakukan. sedangkan untuk cara membuat spinner data dinamis ini caranya sangat mudah teman-teman, yakni pada file MainActivity.kt rubah pada 1 baris ini :
//val languages = resources.getStringArray(R.array.Languages)
val languages = arrayOf("java","kotlin");
Setelah itu coba run, maka seharusnya aplikasi spinner sudah berubah
file github ada di sini teman-teman
github.com/mitraide/spinner/tree/main
branch main -> bagian statis
branch dinamis -> untuk bagian dinamis