Android Kotlin中的自定义可滚动时间选择器
创始人
2024-08-14 15:30:14
0

要在Android Kotlin中创建自定义可滚动的时间选择器,可以使用RecyclerView和自定义适配器来实现。以下是一个示例代码:

首先,创建一个名为TimePickerAdapter的自定义适配器类:

import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView

class TimePickerAdapter(private val timeList: List) :
    RecyclerView.Adapter() {

    private var selectedPosition = -1

    inner class TimeViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
        val timeTextView: TextView = itemView.findViewById(R.id.timeTextView)

        init {
            itemView.setOnClickListener {
                val position = adapterPosition
                if (position != RecyclerView.NO_POSITION) {
                    selectedPosition = position
                    notifyDataSetChanged()
                }
            }
        }
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): TimeViewHolder {
        val itemView = LayoutInflater.from(parent.context)
            .inflate(R.layout.time_item, parent, false)
        return TimeViewHolder(itemView)
    }

    override fun onBindViewHolder(holder: TimeViewHolder, position: Int) {
        val currentTime = timeList[position]
        holder.timeTextView.text = currentTime

        if (selectedPosition == position) {
            holder.timeTextView.setTextColor(holder.itemView.context.resources.getColor(R.color.selected_time))
        } else {
            holder.timeTextView.setTextColor(holder.itemView.context.resources.getColor(R.color.default_time))
        }
    }

    override fun getItemCount(): Int {
        return timeList.size
    }
}

接下来,创建一个名为MainActivity的主活动类,并在其中设置RecyclerView和时间列表:

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView

class MainActivity : AppCompatActivity() {

    private lateinit var timeRecyclerView: RecyclerView
    private lateinit var timeAdapter: TimePickerAdapter

    private val timeList = listOf("09:00", "10:00", "11:00", "12:00", "13:00", "14:00", "15:00", "16:00")

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        timeRecyclerView = findViewById(R.id.timeRecyclerView)
        timeRecyclerView.layoutManager = LinearLayoutManager(this)
        timeAdapter = TimePickerAdapter(timeList)
        timeRecyclerView.adapter = timeAdapter
    }
}

最后,创建一个名为time_item.xml的布局文件,定义时间选择器中每个时间项的外观:



确保在项目的res/values/colors.xml文件中定义selected_time和default_time颜色:



    #FF0000
    #000000

这样,你就可以在Android Kotlin中创建一个自定义的可滚动时间选择器了。

相关内容

热门资讯

外挂总结!德普之星透视辅助软件... 外挂总结!德普之星透视辅助软件是真的吗,德州辅助工具到底怎么样-果然真的是有辅助方法(哔哩哔哩)1、...
外挂技法!约局吧开挂,悦扑克脚... 外挂技法!约局吧开挂,悦扑克脚本-好像有辅助软件(哔哩哔哩)运悦扑克脚本辅助工具,进入游戏界面。进入...
外挂讲义!德州透视竞技联盟,菠... 外挂讲义!德州透视竞技联盟,菠萝辅助器免费版的功能介绍-原来是有辅助教程(哔哩哔哩)1、金币登录送、...
外挂妙计!拱趴大菠萝挂哪里,w... 外挂妙计!拱趴大菠萝挂哪里,werplan辅助软件-切实是有辅助教程(哔哩哔哩)1、下载好拱趴大菠萝...
外挂指引!pokerrrr2辅... 外挂指引!pokerrrr2辅助,哈糖大菠萝开挂-切实是真的有辅助app(哔哩哔哩)1、外挂指引!p...
外挂项目!we poker免费... 外挂项目!we poker免费辅助器,约局吧辅助器-竟然真的是有辅助教程(哔哩哔哩)we poker...
外挂阶段!约局吧德州有挂吗,约... 外挂阶段!约局吧德州有挂吗,约局吧是否有挂-确实一直总是有辅助脚本(哔哩哔哩)1、起透看视 约局吧德...
外挂指引!佛手在线大菠萝技巧,... 外挂指引!佛手在线大菠萝技巧,德扑圈透视-本来真的有辅助app(哔哩哔哩)1、进入游戏-大厅左侧-新...
外挂教程书!德州局脚本,哈糖大... 外挂教程书!德州局脚本,哈糖大菠萝能开挂吗-总是是有辅助神器(哔哩哔哩)1、完成哈糖大菠萝能开挂吗有...
外挂烘培!werplan有挂吗... 外挂烘培!werplan有挂吗,哈糖大菠萝挂-确实一直都是有辅助脚本(哔哩哔哩)1、哈糖大菠萝挂公共...