lmw
2024-11-20 ec282d9bf134fbda578ff901e4a620222a851d3f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package com.sinata.xqmuse.ui.home.adapter
 
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import cn.sinata.xldutils.gone
import cn.sinata.xldutils.utils.SpanBuilder
import cn.sinata.xldutils.utils.ellipsize
import cn.sinata.xldutils.visible
import com.facebook.drawee.view.SimpleDraweeView
import com.sinata.xqmuse.R
import com.sinata.xqmuse.network.entity.Banner
import com.sinata.xqmuse.network.entity.CommonItemBean
import com.youth.banner.adapter.BannerAdapter
import org.jetbrains.anko.toast
 
class LandscapeBannerAdapter(data:ArrayList<CommonItemBean>, private val context:Context)
    :BannerAdapter<CommonItemBean,RecyclerView.ViewHolder>(data){
    override fun onCreateHolder(parent: ViewGroup?, viewType: Int): RecyclerView.ViewHolder {
        val view = LayoutInflater.from(context).inflate(R.layout.item_banner_round, parent, false)
        return BannerViewHolder(view)
    }
 
    override fun onBindView(
        holder: RecyclerView.ViewHolder?,
        data: CommonItemBean?,
        position: Int,
        size: Int
    ) {
        val bannerViewHolder = holder as BannerViewHolder
        bannerViewHolder.iv_bg.setImageURI(data?.coverUrl?.split(",")?.get(0))
        bannerViewHolder.tv_title.text = data?.meditationTitle
        bannerViewHolder.tv_subtitle.text = data?.coverDescription?.ellipsize(18)
        bannerViewHolder.tv_count.text = ((data?.realLearnedNum?:0)+(data?.virtualLearnedNum?:0)).toString()
        when(data?.chargeType){ //1=免费 2=会员免费 3=单独收费
            2->{
                bannerViewHolder.iv_vip.visible()
                bannerViewHolder.tv_price.gone()
            }
            3->{
                bannerViewHolder.iv_vip.gone()
                bannerViewHolder.tv_price.visible()
                bannerViewHolder.tv_price.text = SpanBuilder("¥${data.generalPrice}").size(0,1,7).build()
            }else->{
                bannerViewHolder.iv_vip.gone()
                bannerViewHolder.tv_price.gone()
            }
        }
    }
 
    inner class BannerViewHolder(v:View) :RecyclerView.ViewHolder(v){
        var iv_bg:SimpleDraweeView = v.findViewById(R.id.iv_bg) as SimpleDraweeView
        var tv_title:TextView = v.findViewById(R.id.tv_title) as TextView
        var tv_subtitle:TextView = v.findViewById(R.id.tv_subtitle) as TextView
        var tv_count:TextView = v.findViewById(R.id.tv_count) as TextView
        var iv_vip:View = v.findViewById(R.id.iv_vip)
        var tv_price:TextView = v.findViewById(R.id.tv_price)
    }
}