Activity部分,xml部分就是一个简单的RecycleView
var mData = ArrayList<String>()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//查找控件
val recycleView = findViewById<RecyclerView>(R.id.recyCleview)
//设置排列方式
recycleView.layoutManager = LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false)
//给集合添加数据
getDate()
val adapter = KotlinRecycleAdater(mData,this)
recycleView.adapter = adapter
//RecycleView的点击事件
adapter!!.setOnKotlinItemClickListener(object : KotlinRecycleAdater.IKotlinItemClickListener{
override fun onItemClickListener(position: Int) {
Toast.makeText(applicationContext,mData!![position],Toast.LENGTH_SHORT).show()
}
})
}
private fun getDate(){
for(i in 0..20){
mData!!.add("我是数据"+i)
}
}
然后是Adapter部分,切记创建时候要创建Kotlin的.kt文件,不能创建之前的.java文件,
不然没法用kotlin,Adapter里面也就是一个TextView
class KotlinRecycleAdater() : RecyclerView.Adapter<KotlinRecycleAdater.MyViewHolder>(){
private var list : ArrayList<String>? = null
private var context : Context? = null
private var itemOnClick : IKotlinItemClickListener? = null
constructor(list : ArrayList<String>?,context: Context) : this() {
this.list = list
this.context = context
}
override fun onCreateViewHolder(p0: ViewGroup, p1: Int): MyViewHolder {
var view = LayoutInflater.from(context).inflate(R.layout.recycleview_item,p0,false)
return MyViewHolder(view)
}
override fun getItemCount(): Int {
return list?.size!!
}
override fun onBindViewHolder(p0: MyViewHolder, p1: Int) {
p0?.text?.text = list!![p1]
p0.itemView.setOnClickListener{
itemOnClick!!.onItemClickListener(p1)
}
}
class MyViewHolder(itemView : View) : RecyclerView.ViewHolder(itemView){
var text : TextView = itemView.findViewById(R.id.text_item)
}
//自定义接口
interface IKotlinItemClickListener {
fun onItemClickListener(position: Int)
}
// 提供set方法
fun setOnKotlinItemClickListener(itemClickListener: IKotlinItemClickListener) {
this.itemOnClick = itemClickListener
}
}
这样一个RecycleView就完成了,要多low有多low哈哈。
2823

被折叠的 条评论
为什么被折叠?



