我正在使用视图绑定功能编写一个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。
您需要使用
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,因为您使用的是视图绑定。