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? ) : BaseQuickAdapter(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(R.id.iv_head).setOnClickListener { val position = helper.adapterPosition if (position != RecyclerView.NO_POSITION) { onItemClickListener?.onItemClick(position, item) } } // 设置续租按钮的点击事件 helper.getView(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 } } }