无法引用Kotlin中的子类
正如你在下面看到的,我无法引用我的CustomAdapter
的内部类为我的应用程序BindItems
。 我不知道为什么它显示为红色,没有找到。
class MyCustomAdapter(context: Context,val theList: ArrayList<MyInfo>): RecyclerView.Adapter<ViewHolder>(){ override fun getItemCount(): Int { return theList.size } override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { holder.bindItems(theList[position]) } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { val v = LayoutInflater.from(parent.context).inflate(R.layout.main_row, parent, false) return ViewHolder(v) } class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { fun bindItems(user: MyInfo) { val textViewName : TextView = itemView.findViewById<TextView>(R.id.row_town_name) val textViewAddress : TextView = itemView.findViewById<TextView>(R.id.row_zip_code) textViewName.text = user.townname textViewAddress.text = user.zipcode } } }
解:
class MyCustomAdapter(context: Context,val theList: ArrayList<MyInfo>): RecyclerView.Adapter<MyCustomAdapter.MyViewHolder>(){ override fun getItemCount(): Int { return theList.size } override fun onBindViewHolder(holder: MyCustomAdapter.MyViewHolder, position: Int) { holder.bindItems(theList[position]) } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyCustomAdapter.MyViewHolder { val v = LayoutInflater.from(parent.context).inflate(R.layout.main_row, parent, false) return MyViewHolder(v) } class MyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { fun bindItems(user: MyInfo) { val textViewName : TextView = itemView.findViewById<TextView>(R.id.row_town_name) val textViewAddress : TextView = itemView.findViewById<TextView>(R.id.row_zip_code) textViewName.text = user.townname textViewAddress.text = user.zipcode } } }
谢谢-R
像下面一样改变你的onBindViewHolder
方法,并改变你的ViewHolder
的名字:
override fun onBindViewHolder(holder: MyViewHolder, position: Int) { }