import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.TextView import androidx.recyclerview.widget.RecyclerView class MySimpleAdapter(private val mDataSet: List?) : RecyclerView.Adapter() { private var clickListener: ClickListener? = null override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder { val v = LayoutInflater.from(parent.context) .inflate(R.layout.simple_list_item_1, parent, false) return MyViewHolder(v) } override fun onBindViewHolder(holder: MyViewHolder, position: Int) { val data = mDataSet?.get(position) data?.let { holder.bindItems(it) } } override fun getItemCount(): Int { return mDataSet?.size ?: 0 } fun getItem(position: Int): String? { //return if (mDataSet != null) mDataSet[position] else null return mDataSet?.get(position) } fun setOnItemClickListener(clickListener: ClickListener) { this.clickListener = clickListener } inner class MyViewHolder(v: View) : RecyclerView.ViewHolder(v), View.OnClickListener { private val text1 = v.findViewById(android.R.id.text1) as TextView init { if (clickListener != null) { itemView.setOnClickListener(this) } } fun bindItems(data: String) { text1.text = data } override fun onClick(v: View?) { if (v != null) { clickListener?.onItemClick(v,adapterPosition) } } } interface ClickListener { fun onItemClick(v: View,position: Int) } }