You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Kotlin日历:实现双击日期跳转至新Activity

日历组件双击日期跳转Activity实现方案

系统自带CalendarView实现方式

  • 系统CalendarView无默认双击监听器,需通过时间差判定双击:
    1. 定义变量记录上次点击时间:
      private var lastClickTime = 0L
      
    2. 给CalendarView设置日期选择监听,在回调中处理双击逻辑:
      calendarView.setOnDateChangeListener { _, year, month, dayOfMonth ->
          val currentTime = System.currentTimeMillis()
          // 500ms内连续点击判定为双击,可按需调整阈值
          if (currentTime - lastClickTime < 500) {
              // 跳转目标Activity
              val intent = Intent(this, TargetActivity::class.java)
              // 可选:传递选中日期参数
              intent.putExtra("selected_date", "${year}-${month + 1}-${dayOfMonth}")
              startActivity(intent)
          }
          lastClickTime = currentTime
      }
      

第三方日历库通用实现(以Material Calendar View为例)

多数第三方日历库需通过时间差判断双击,以Material Calendar View为例:

private var lastClickTime = 0L
materialCalendarView.setOnDateChangedListener { _, date, isSelected ->
    if (isSelected) {
        val currentTime = System.currentTimeMillis()
        if (currentTime - lastClickTime < 500) {
            val intent = Intent(this, TargetActivity::class.java)
            intent.putExtra("selected_date", date.toString())
            startActivity(intent)
        }
        lastClickTime = currentTime
    }
}

注:部分第三方库提供原生双击监听器,可优先查阅对应库官方文档

自定义日历组件实现方式

若为自行开发的日历(如RecyclerView实现的日期列表),在Item点击事件中处理双击:

inner class DateViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
    private var itemLastClickTime = 0L

    fun bind(dateStr: String) {
        itemView.setOnClickListener {
            val currentTime = System.currentTimeMillis()
            if (currentTime - itemLastClickTime < 500) {
                val intent = Intent(itemView.context, TargetActivity::class.java)
                intent.putExtra("selected_date", dateStr)
                itemView.context.startActivity(intent)
            }
            itemLastClickTime = currentTime
        }
    }
}

内容的提问来源于stack exchange,提问作者saFp33

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 04:39:34