1.xml文件中配置RecyclerView
<androidx.recyclerview.widget.RecyclerView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/data_recycle"
app:layout_constraintTop_toBottomOf="@+id/text_home"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
2.定义adapter
package com.example.myapplication.ui.adapter
import android.content.Context
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import android.widget.Toast
import androidx.recyclerview.widget.RecyclerView
import com.example.myapplication.R
class DataRecycleAdapter(var context:Context?,var dataList: MutableList<String>): RecyclerView.Adapter<DataRecycleAdapter.MyViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
val view:View = LayoutInflater.from(context).inflate(R.layout.list_item,parent,false)
return MyViewHolder(view)
}
override fun getItemCount(): Int {
return dataList.size
}
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
Log.d("wang","position,:$position,${dataList[position]}")
holder.textInfo?.text = dataList[position]
holder.incoInfo?.setOnClickListener {
Toast.makeText(context, "click:$position",Toast.LENGTH_LONG).show()
}
}
class MyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
var incoInfo:ImageView? = null
var textInfo:TextView? = null
init {
incoInfo = itemView.findViewById(R.id.icon_info)
textInfo = itemView.findViewById(R.id.text_info)
}
}
}
3.绑定adapter
val radapter = DataRecycleAdapter(context,list)
var recycleList:RecyclerView = root.findViewById(R.id.data_recycle)
recycleList.layoutManager = LinearLayoutManager(context)
recycleList.adapter = radapter