package com.example.spinner
import android.app.Activity
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.BaseAdapter
import android.widget.TextView
class SpinnerAdapter(activity: Activity, val resouceId: Int, var datas: List<String>) :
BaseAdapter() {
class viewholder(val number: TextView)
override fun getCount(): Int {
return datas.size
}
override fun getItem(p0: Int): Any {
return datas[p0]
}
override fun getItemId(p0: Int): Long {
return p0.toLong()
}
override fun getView(
position: Int,
convertView: View?,
parent: ViewGroup
): View {
val view: View
val holder: viewholder
if (convertView == null) {
view = LayoutInflater.from(parent.context).inflate(resouceId, parent, false)
val number = view.findViewById<TextView>(R.id.number)
holder = viewholder(number)
view.tag = holder
} else {
view = convertView
holder = view.tag as viewholder
}
val item = getItem(position)
if (item != null) {
holder.number.text = item.toString()
}
return view
}
}
package com.example.spinner
import android.content.Context
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.AttributeSet
import android.view.View
import android.widget.*
import android.widget.SpinnerAdapter
class MainActivity : AppCompatActivity() {
private var datas = ArrayList<String>()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
for(i in 0..20){
datas.add(i.toString())
}
val spinner = findViewById<Spinner>(R.id.spinner)
val adapter = SpinnerAdapter(this,R.layout.number_item,datas)
spinner.adapter = adapter
// spinner.setOnItemClickListener { adapterView, view, i, l ->
// val number = datas[i]
// Toast.makeText(this,number,Toast.LENGTH_SHORT).show()
// }
spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener{
override fun onItemSelected(p0: AdapterView<*>?, p1: View?, p2: Int, p3: Long) {
val number = datas[p2]
println(number)
}
override fun onNothingSelected(p0: AdapterView<*>?) {
TODO("Not yet implemented")
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Spinner
android:layout_width="match_parent"
android:layout_height="100dp"
android:id="@+id/spinner"
android:spinnerMode="dialog"
android:prompt="@string/app_name"/>
</LinearLayout>
item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/spinner">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/number"/>
</LinearLayout>