我嘗試從 onBindViewHolder() 呼叫內部類 LaunchesViewHolder 中宣告的有趣系結,但出現錯誤“未解決的資源系結”我正在嘗試使用另一個變數 x,只是為了看看,同樣的問題
class LaunchesAdapter(private val dataSet: List<LaunchItem>) :
RecyclerView.Adapter<RecyclerView.ViewHolder>() {
inner class LaunchesViewHolder( val binding: LaunchesItemLayoutBinding) :
RecyclerView.ViewHolder(binding.root) {
val x = 0
public fun bind(currentLaunch: LaunchItem) {
//do something
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
return LaunchesViewHolder(
LaunchesItemLayoutBinding.inflate(
LayoutInflater.from(parent.context),
parent,
false
)
)
}
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
holder.bind(dataSet[position]) => error unresolved resource bind
holder.x =1 => error unresolved resource x
}
override fun getItemCount(): Int {
return dataSet.size
}
}````
uj5u.com熱心網友回復:
在你的onBindViewHolder你應該使用你的特定的ViewHolder,也就是說LaunchesViewHolder而不是RecyclerView.ViewHolder. 請看下面的代碼。
override fun onBindViewHolder(holder: LaunchesViewHolder, position: Int) {
holder.bind(dataSet[position])
}
已編輯:您還需要指定您覆寫的類
class LaunchesAdapter(private val dataSet: List<LaunchItem>) :
RecyclerView.Adapter<LaunchesAdapter.LaunchesViewHolder>() {
}
uj5u.com熱心網友回復:
它適用于 (holder as LaunchesViewHolder).bind(dataSet[position]) 而不是 holder.bind(dataSet[position])
查看更多詳細資訊https://www.section.io/engineering-education/implementing-multiple-viewholders-in-android-using-kotlin/
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/529182.html
標籤:功能科特林适配器内部阶级android-viewholder
下一篇:在Kotlin中將List<Pair<K,Collection<V>>>轉換為Map<K,Collection<V>>
