为什么在recyclerview适配器中看不到item的id?

问题描述 投票:0回答:1

我正在使用视图绑定功能编写一个recyclerview,但我无法访问项目中item.xml 文件中存在的项目的id。这是适配器和 item.xml 文件的代码。

适配器:

class RecyclerviewAdapter(val Data:List<Data>):RecyclerView.Adapter<RecyclerviewAdapter.ViewHolder>() {
    class ViewHolder(binding: ItemBinding) : RecyclerView.ViewHolder(binding.root)


    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        val inflater = LayoutInflater.from(parent.context)
        val binding = ItemBinding.inflate(inflater, parent, false)
        return ViewHolder(binding)
    }

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

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

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:orientation="horizontal">

    <TextView
        android:id="@+id/date"
        android:layout_width="100dp"
        android:layout_height="100dp" />
    <TextView
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:id="@+id/temperaturec"/>
    <TextView
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:id="@+id/temperaturef"/>
    <TextView
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:id="@+id/summary"/>


</LinearLayout>

我想访问文本的ID。

android xml kotlin android-recyclerview
1个回答
0
投票

您需要使用

binding
:
val

构造函数参数设置为属性
class ViewHolder(val binding: ItemBinding) : RecyclerView.ViewHolder(binding.root)

然后您可以使用它来访问视图:

override fun onBindViewHolder(holder: ViewHolder, position: Int) {
    holder.binding.date.text = /* for example: */ Data[position].date
}

您不需要所请求的视图的实际 ID,因为您使用的是视图绑定。

© www.soinside.com 2019 - 2024. All rights reserved.