Spinners provide a way to select one value from a list set.
In the default state, a spinner shows its currently selected value.
Create a new Project in Kotlin
- Open Android Studio.
- Go to File => New => New Project. Write application name as Spinner. Then, check Include Kotlin Support and click next button.
- Select minimum SDK you need. However, we have selected 17 as minimum SDK. Then, click next button
- Then, select Empty Activity => click next => click finish.
- You will get a newly created project successfully if you have followed steps properly.
Use the below code to Implement a Spinner with Kotlin
MainActivity.kt
package com.jigopost.kotlinspinner
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*
import android.view.View
import android.widget.*
import java.util.ArrayList as ArrayList1
class MainActivity : AppCompatActivity(),AdapterView.OnItemSelectedListener {
val languagesList = ArrayList()
var spinnerlanguages:Spinner? = null
var textView_languages:TextView? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
textView_languages = this.msg
spinnerlanguages = this.spinner_sample
languagesList.add("English")
languagesList.add("French")
languagesList.add("Hindi")
spinnerlanguages!!.setOnItemSelectedListener(this)
// Create an ArrayAdapter using a simple spinner layout and languages array
val aa = ArrayAdapter(this, android.R.layout.simple_spinner_item, languagesList)
// Set layout to use when the list of choices appear
aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
// Set Adapter to Spinner
spinnerlanguages!!.setAdapter(aa)
}
override fun onItemSelected(arg0: AdapterView<*>, arg1: View, position: Int, id: Long) {
textView_languages!!.text = "Selected language: "+languagesList[position]
}
override fun onNothingSelected(arg0: AdapterView<*>) {
}
}
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical "
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/msg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="25dp"
android:padding="20dp"/>
<Spinner
android:id="@+id/spinner_sample"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
Output