8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

Kotlin 上的 RecyclerView 一周的日期和月份

Andrey 2月前

152 0

我想实现一个 RecyclerView,显示一周的日期和月份,包括当前日期。并且它需要可滚动,当前日期应位于中心。我明白我需要

我想实现一个 RecyclerView,显示一周的日期和月份,包括当前日期。并且它需要可滚动,当前日期应位于中心。我知道我需要 RecyclerView 的 Adapter 和 ViewHolder,但我不知道如何实现日期和月份。请帮帮我。

我需要实现这些

  • 自当前日期起过去 2 周
  • 当前日期
  • 从当前日期起未来 1 周

列表项日期.xml

<?xml version="1.0" encoding="utf-8"?>
<layout 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">

    <data></data>

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="30dp">

        <androidx.appcompat.widget.AppCompatTextView
            android:id="@+id/text_date"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:fontFamily="@font/ttnorms_medium"
            android:textColor="@color/white"
            android:textSize="60sp"
            android:textStyle="bold"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            tools:text="12/31" />


    </androidx.constraintlayout.widget.ConstraintLayout>

</layout>

适配器.kt

class Adapter(private val data: ArrayList<Date>) : RecyclerView.Adapter<ViewHolder>() {

    private lateinit var binding: ListitemDateBinding

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        binding =
            DataBindingUtil.inflate(
                LayoutInflater.from(parent.context),
                R.layout.listitem_date,
                parent,
                false
            )
        return ViewHolder(binding)
    }

    override fun getItemCount(): Int =
        data.size

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        
    }

}

ViewHolder.kt

class ViewHolder (
    private val binding: ListitemDateBinding
) : RecyclerView.ViewHolder(binding.root){

    fun bind(date: Date){
        val currentDateTime = LocalDateTime.now()
        val format = SimpleDateFormat("M/d", Locale.US)
        val cal = Calendar.getInstance(Locale.US)

        val currentDate = Calendar.getInstance(Locale.US)
        val currentDay = currentDate[Calendar.DAY_OF_MONTH]
        val currentMonth = currentDate[Calendar.MONTH]


        binding.textDate.text = currentDateTime.toString()
    }

}
帖子版权声明 1、本帖标题:Kotlin 上的 RecyclerView 一周的日期和月份
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Andrey在本站《date》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 太长了;博士

    在 Java 语法中:

    long millisSinceEpoch = myJavaUtilDate.toInstant().toEpochMilli() ;
    

    细节

    我有一个 Java 日期

    不。

    这两个 Date 类都存在严重缺陷,几年前就被现代 java.time 类取代了。尽可能避免使用传统的日期时间类。

    如果您收到一个 java.util.Date <新code>对象,请立即转换为其替代对象: java.time.Instant 添加到旧类中的 to… / from… / 为 java.util.Date#toInstant .

    Instant instant = myJavaUtilDate.toInstant() ;
    

    以纪元毫秒为单位

    只需调用 Instant#toEpochMilli() .

    注意潜在的数据丢失,因为 Instant 可能包含微秒或纳秒。

    long millisSinceEpoch = instant.toEpochMilli() ;
    

    到本地日期时间

    这个课程 非常 你使用。

    切勿使用 LocalDateTime 时间线上的特定点。A LocalDateTime 故意缺少时区或 UTC 偏移量的上下文。因此此类 无法表示 moment 。A LocalDateTime 实际上只不过是一个带有时间的日期。因此,我们不知道该日期和时间是否应该使用挂钟/日历显示在日本东京的人、法国图卢兹的人或美国俄亥俄州托莱多的人——三个相隔几个小时的不同时刻。

    当您想要表示时间轴上的特定点时,请仅使用以下类: Instant , OffsetDateTime , 或 ZonedDateTime 。 (或非公历中的等价类,例如佛教历法或伊斯兰历法。)

返回
作者最近主题: