kotlin,recyclerview写法
程序员文章站
2022-06-09 23:07:50
...
android studio版本在3.0以下的,要安装kotlin插件:
3.0以上的就不用安装插件了,在new项目的时候勾选kotlin就行了
然后在gradle文件里面就会看到kotlin了!
现在开始recyclerview写法!!有错的地方可以指导一下
class RecyclerViewAdapter(val list: List<User>) : RecyclerView.Adapter<RecyclerViewAdapter.ViewHodler>() {
var mListener: ((pos:Int)->Unit)? =null
override fun onBindViewHolder(holder: ViewHodler, position: Int){
with(holder?.itemView!!){
text?.text = list[position].name
text2?.text = list[position].id
image.setImageResource(list[position].icon!!)
setOnClickListener { mListener ?.invoke(position) }
}
}
override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): ViewHodler{
return ViewHodler(View.inflate(parent?.context,R.layout.layout_item,null))
}
override fun getItemCount() =list?.size
class ViewHodler(item : View) : RecyclerView.ViewHolder(item)
fun setOnItemClickListener(listener:(pos:Int )->Unit){
mListener = listener
}
}
看到id.text如果要实现这个简便的方法,就得加一个插件了:
apply plugin: 'kotlin-android-extensions'
gradle
文件要大于3.5以上才能使用
mainactivity
val list:ArrayList<User> = ArrayList()
val adapter = RecyclerViewAdapter(list)
for (i in 0..20){
val user = User()
user.id = i.toString()
user.name= "zhu"
user.icon = R.mipmap.ic_launcher
list.add(user)
}
recyc.layoutManager = GridLayoutManager(this,2)
recyc.adapter = adapter
adapter.setOnItemClickListener{
pos ->
Toast.makeText(this,adapter.list[pos].id,Toast.LENGTH_SHORT).show()
}
基本就可以实现了