當我在其中添加 ViewHolder 類時,覆寫函式 onBindViewHolder 不會被覆寫。當我把 viewHolder 類放在它外面時。它不作業。
在我的代碼下面 -
class data_custom_adapter(private val context: Context, private val datalist : ArrayList<Display_data>) : RecyclerView.Adapter<CustomAdapter.ViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CustomAdapter.ViewHolder {
val v = LayoutInflater.from(parent.context).inflate(R.layout.display_data_card, parent, false)
return CustomAdapter.ViewHolder(v)
}
//Issue occur here -- it is not overriding when I add ViewHolder class
override fun onBindViewHolder(holder: data_custom_adapter.ViewHolder, position: Int) {
holder.bindItems(context,datalist[position])
}
override fun getItemCount(): Int {
return datalist.size
}
//the class is holding the list view
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
private val datalist_data = itemView.findViewById(R.id.displayxmldata) as TextView
fun bindItems(context: Context, datashow : Display_data) {
datalist_data.text = datashow.appdata
}
}
}
伙計們,請幫助找出這方面的問題。
uj5u.com熱心網友回復:
ViewHolder 必須與您在第一行中指示的類相匹配。所以在
class data_custom_adapter(private val context: Context, private val datalist : ArrayList<Display_data>) : RecyclerView.Adapter<CustomAdapter.ViewHolder>() {
有CustomAdapter.ViewHolder。將此更改為您的data_custom_adapter.ViewHolder,它應該可以作業。很喜歡
class data_custom_adapter(private val context: Context, private val datalist : ArrayList<Display_data>) : RecyclerView.Adapter<data_custom_adapter.ViewHolder>() {
這也需要在onCreateViewHolder函式中改變
uj5u.com熱心網友回復:
我希望這會奏效。
class data_custom_adapter(
private val context: Context,
private val datalist : ArrayList<Display_data>) : RecyclerView.Adapter<data_custom_adapter.ViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val v = LayoutInflater.from(parent.context).inflate(R.layout.display_data_card, parent, false)
return data_custom_adapter.ViewHolder(v)
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.bindItems(context,datalist[position])
}
override fun getItemCount(): Int {
return datalist.size
}
//the class is holding the list view
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
private val datalist_data = itemView.findViewById(R.id.displayxmldata) as TextView
fun bindItems(context: Context, datashow : Display_data) {
datalist_data.text = datashow.appdata
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/395921.html
標籤:安卓 科特林 android-recyclerview 覆盖
