kotlin,recyclerview写法

来源:互联网 发布:windows 7 共享 权限 编辑:程序博客网 时间:2024/06/16 13:23

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()        }

基本就可以实现了