133 lines
5.2 KiB
Kotlin
133 lines
5.2 KiB
Kotlin
package com.xscm.modulemain.adapter
|
||
|
||
import android.annotation.SuppressLint
|
||
import android.content.Context
|
||
import android.graphics.Color
|
||
import android.view.View
|
||
import android.widget.ImageView
|
||
import android.widget.LinearLayout
|
||
import android.widget.TextView
|
||
import androidx.core.view.isVisible
|
||
import androidx.recyclerview.widget.RecyclerView
|
||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||
import com.chad.library.adapter.base.BaseViewHolder
|
||
import com.google.android.flexbox.FlexboxLayout
|
||
import com.xscm.modulemain.Application
|
||
import com.xscm.modulemain.R
|
||
import com.xscm.moduleutil.bean.MyFamilyBean
|
||
import com.xscm.moduleutil.utils.ImageUtils
|
||
import com.xscm.moduleutil.utils.MeHeadView
|
||
import com.xscm.moduleutil.utils.SpUtil
|
||
import com.xscm.moduleutil.widget.ShineTextView
|
||
import java.text.DecimalFormat
|
||
|
||
/**
|
||
* 项目名称:羽声语音
|
||
* 时间:2025/11/27 9:23
|
||
* 用途:
|
||
*/
|
||
class MyFamilyAdapter(
|
||
val context: Context,var userId: Int, layoutId: Int, data: MutableList<MyFamilyBean.GroupMembersListsBean>?
|
||
) :
|
||
BaseQuickAdapter<MyFamilyBean.GroupMembersListsBean, BaseViewHolder>(layoutId, data) {
|
||
|
||
// 定义点击事件回调接口
|
||
interface OnItemClickListener {
|
||
fun onItemClick(position: Int, item: MyFamilyBean.GroupMembersListsBean)
|
||
fun onRenewClick(position: Int, item: MyFamilyBean.GroupMembersListsBean)
|
||
}
|
||
|
||
private var onItemClickListener: OnItemClickListener? = null
|
||
|
||
// 设置点击事件监听器
|
||
fun setOnItemClickListener(listener: OnItemClickListener) {
|
||
onItemClickListener = listener
|
||
}
|
||
@SuppressLint("DefaultLocale")
|
||
override fun convert(
|
||
helper: BaseViewHolder,
|
||
item: MyFamilyBean.GroupMembersListsBean
|
||
) {
|
||
// 设置整个项的点击事件
|
||
helper.getView<MeHeadView>(R.id.iv_head).setOnClickListener {
|
||
val position = helper.adapterPosition
|
||
if (position != RecyclerView.NO_POSITION) {
|
||
onItemClickListener?.onItemClick(position, item)
|
||
}
|
||
}
|
||
|
||
// 设置续租按钮的点击事件
|
||
helper.getView<TextView>(R.id.tv_renew).setOnClickListener {
|
||
val position = helper.adapterPosition
|
||
if (position != RecyclerView.NO_POSITION) {
|
||
onItemClickListener?.onRenewClick(position, item)
|
||
}
|
||
}
|
||
var flex_entry: FlexboxLayout=helper.getView(R.id.flex_entry)
|
||
var meHeadView : MeHeadView= helper.getView(R.id.iv_head)
|
||
var tvName : ShineTextView =helper.getView(R.id.tv_name)
|
||
meHeadView.setData(item.avatar,item.dress,item.nobility_image)
|
||
// helper.setText(R.id.tv_name,item.nickname)
|
||
helper.setText(R.id.tv_net_worth,item.market_value)
|
||
if (item.is_online==1){
|
||
helper.setImageResource(R.id.im_online, com.xscm.moduleutil.R.mipmap.members_online)
|
||
}else{
|
||
helper.setImageResource(R.id.im_online, com.xscm.moduleutil.R.mipmap.members_offline)
|
||
}
|
||
|
||
helper.setText(R.id.tv_time, "剩余租期"+item.end_day)
|
||
helper.setText(R.id.tv_num, "免费续约次数"+ item.free_renewal)
|
||
|
||
val decimalFormat = DecimalFormat("#.####")
|
||
helper.setText(R.id.tv_today, decimalFormat.format(item.today_earnings.toDouble()))
|
||
helper.setText(R.id.tv_yesterday, decimalFormat.format(item.yesterday_earnings.toDouble()))
|
||
|
||
|
||
// helper.setText(R.id.tv_yesterday, item.yesterday_earnings)
|
||
tvName.setText(item.nickname)
|
||
if (item.nickname_color.isNotEmpty()){
|
||
tvName.startColor = Color.parseColor(item.nickname_color)
|
||
tvName.shineColor = Color.parseColor(item.nickname_color)
|
||
tvName.endColor = Color.parseColor(item.nickname_color)
|
||
tvName.isShine = true
|
||
tvName.shineType = 0
|
||
|
||
}
|
||
if (userId == SpUtil.getUserId()) {
|
||
if (item.is_show_sign==0){
|
||
helper.setVisible(R.id.tv_renew,false)
|
||
}else{
|
||
helper.setVisible(R.id.tv_renew,true)
|
||
}
|
||
}
|
||
|
||
if (item.icon.isNotEmpty()) {
|
||
flex_entry.isVisible=true
|
||
for (url in item.icon) {
|
||
if (url.contains("http")) {
|
||
val imageView1 = ImageView(Application.getInstance())
|
||
val params = LinearLayout.LayoutParams(
|
||
LinearLayout.LayoutParams.WRAP_CONTENT,
|
||
Application.getInstance().getResources()
|
||
.getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_20)
|
||
)
|
||
params.setMargins(
|
||
0,
|
||
0,
|
||
Application.getInstance().getResources()
|
||
.getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_10),
|
||
0
|
||
) // 右边距
|
||
imageView1.setLayoutParams(params)
|
||
imageView1.setScaleType(ImageView.ScaleType.FIT_START)
|
||
|
||
// 使用 Glide 加载图片
|
||
ImageUtils.loadHeadCC(url, imageView1, params)
|
||
flex_entry.addView(imageView1)
|
||
}
|
||
}
|
||
} else {
|
||
flex_entry.isVisible=false
|
||
}
|
||
}
|
||
} |