RecyclerView Kotlin适配器

RecyclerView适配器这里使用 Kotlin写的一个带有头布局的适配器也是属于万能适配器
在这里插入图片描述

实现代码

class RvHomeAdapter(var context: FragmentActivity?) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
    var list:ArrayList<String> = ArrayList();
    var tag= listOf("林允儿","林允儿","林允儿")
    var images:ArrayList<Int> = ArrayList();
    companion object{
        val TYPE_TITLE = 0
        val TYPE_SELLER = 1
    }
    override fun getItemViewType(position: Int): Int {
        if (position == 0){
            return TYPE_TITLE
        }else{
            return TYPE_SELLER
        }
        return super.getItemViewType(position)
    }
    override fun onBindViewHolder(p0: RecyclerView.ViewHolder, p1: Int) {
        val viewtype = getItemViewType(p1)
        when(viewtype){
            TYPE_TITLE ->  return (p0 as TitleHolder).inData("我是头布局")
            TYPE_SELLER -> return (p0 as SellerHolder).inData(list[p1-1])
        }

    }
    fun setData(data:ArrayList<String>){
            this.list = data
            notifyDataSetChanged()
    }
    fun setImage(data: ArrayList<Int>){
        this.images = data
        notifyDataSetChanged()
    }
    override fun getItemCount(): Int {
        if (list.size>0){
            return list.size+1
        }else{
            return 0
        }
    }

    override fun onCreateViewHolder(p0: ViewGroup, p1: Int): RecyclerView.ViewHolder {
        when(p1){
            TYPE_TITLE ->  return TitleHolder(View.inflate(context, R.layout.item_title,null))
            TYPE_SELLER -> return SellerHolder(View.inflate(context, R.layout.item_seller,null))
            else ->  return TitleHolder(View.inflate(context, R.layout.layout_item_rvhome,null))
        }

    }
    inner class SellerHolder(item:View):RecyclerView.ViewHolder(item){

        init {

        }
        fun inData(data : String){

        }
    }
    inner class TitleHolder(item:View):RecyclerView.ViewHolder(item){
        var banner:Banner
        init {
            banner =item.findViewById(R.id.banner)
            banner.setImages(images)
            banner.setImageLoader(object :ImageLoader(){
                override fun displayImage(context: Context?, path: Any?, imageView: ImageView?) {
                        Glide.with(context).load(path).into(imageView)
                }
            })
            banner.setBannerTitles(tag)
            banner.setDelayTime(1000)
            banner.start()
        }
        fun inData(data : String){

        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MX_XXS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值