欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

kotlin,recyclerview写法

程序员文章站 2022-06-09 23:07:50
...

android studio版本在3.0以下的,要安装kotlin插件:

kotlin,recyclerview写法

3.0以上的就不用安装插件了,在new项目的时候勾选kotlin就行了

kotlin,recyclerview写法

然后在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()
        }

基本就可以实现了