Android Dropdown List with Spinner
If you want implement a simple drop down list. Here you go.
Spinner is used to select one value from a set of values in Android. Android Spinner is associated with AdapterView, so that we need to set a adapter class with the Spinner.
Let’s code!
It consists of a TextView and a Spinner in the following layout file:
<?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" tools:context=".MainActivity"> <TextView android:id="@+id/tvSelectedItem" android:layout_width="0dp" android:layout_height="wrap_content" android:text="Hello World!" android:gravity="center" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Spinner android:id="@+id/spDropdownList" android:layout_width="0dp" android:layout_height="wrap_content" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@id/tvSelectedItem"/>
</androidx.constraintlayout.widget.ConstraintLayout>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
Following snippet shows how to associate a adapter to Spinner:
private fun prepareSpinnerAdapter(){ spinnerAdapter = ArrayAdapter(this@MainActivity,android.R.layout.simple_spinner_dropdown_item,spinnerDropdownList) spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) spinner.adapter = spinnerAdapter spinner.onItemSelectedListener = object: AdapterView.OnItemSelectedListener{ override fun onItemSelected( parent: AdapterView<*>?, view: View?, position: Int, id: Long ) { tvSelectedItem.text = parent?.getItemAtPosition(position).toString() } override fun onNothingSelected(parent: AdapterView<*>?) { TODO("Not yet implemented") } } }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
We register a listener to Spinner. It gets the value selected by clicking.It’ll show on the TextView component.
Following code is to prepare data for Spinner:
private fun prepareDataForSpinner(){ for(i in 1 until 10){ spinnerDropdownList.add("Item $i") } }
- 1
- 2
- 3
- 4
- 5
All code of MainActivity.java is here:
package com.example.dropdownlist
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.AdapterView
import android.widget.ArrayAdapter
import android.widget.Spinner
import android.widget.TextView
class MainActivity : AppCompatActivity() { private lateinit var tvSelectedItem: TextView private lateinit var spinner:Spinner private val spinnerDropdownList:MutableList<String> = mutableListOf() private lateinit var spinnerAdapter:ArrayAdapter<String> override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) spinner = findViewById(R.id.spDropdownList) tvSelectedItem = findViewById(R.id.tvSelectedItem) prepareDataForSpinner() prepareSpinnerAdapter() } private fun prepareDataForSpinner(){ for(i in 1 until 10){ spinnerDropdownList.add("Item $i") } } private fun prepareSpinnerAdapter(){ spinnerAdapter = ArrayAdapter(this@MainActivity,android.R.layout.simple_spinner_dropdown_item,spinnerDropdownList) spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) spinner.adapter = spinnerAdapter spinner.onItemSelectedListener = object: AdapterView.OnItemSelectedListener{ override fun onItemSelected( parent: AdapterView<*>?, view: View?, position: Int, id: Long ) { tvSelectedItem.text = parent?.getItemAtPosition(position).toString() } override fun onNothingSelected(parent: AdapterView<*>?) { TODO("Not yet implemented") } } }
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
文章来源: blog.csdn.net,作者:WongKyunban,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_40763897/article/details/115461038
- 点赞
- 收藏
- 关注作者
评论(0)