• Spinner


    • spinneradapter
    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
        }
    }
    
    • 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
    • MainActivity代码
    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")
                }
            }
        }
    }
    
    • 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
    • Spinner.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">
    
        <Spinner
            android:layout_width="match_parent"
            android:layout_height="100dp"
            android:id="@+id/spinner"
            android:spinnerMode="dialog"
            android:prompt="@string/app_name"/>
    
    </LinearLayout>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    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>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
  • 相关阅读:
    直饮水表和智能水表有什么区别?
    容器化基础设施的威胁和风险不会更少
    SpringSecurity用户注销
    包含吲哚菁绿的多聚体白蛋白纳米球/载马钱子碱纳米粒的牛血清白蛋白微球的制备
    想去银行测试?那这套题目你必须要会
    js中scrollIntoView第一次不生效,第二次生效
    Canny算子与霍夫变换检测圆与直线
    【ESP8266开发备忘】
    加密项目是否采用DAO模式 首先考量这8个因素
    预测未来一周全球天气要多久?华为云:给我几秒钟
  • 原文地址:https://blog.csdn.net/partworld/article/details/126365035