package com.xscm.moduleutil.adapter; import androidx.annotation.NonNull; import com.chad.library.adapter.base.BaseMultiItemQuickAdapter; import com.chad.library.adapter.base.BaseViewHolder; import com.xscm.moduleutil.R; import com.xscm.moduleutil.bean.RechargeBean; import java.util.List; /** * 充值adapter */ public class BalanceRechargeAdapter extends BaseMultiItemQuickAdapter { private int selectedPosition = -1; private OnRechargeItemClickListener listener; private InputBoxVisibilityListener inputBoxVisibilityListener; public static final int ITEM_TYPE_NORMAL = 0; public static final int ITEM_TYPE_FOOTER = 1; public BalanceRechargeAdapter(@NonNull List data) { super(data); // 初始化 item 类型 addItemType(ITEM_TYPE_NORMAL, R.layout.rv_item_balance_recharge); addItemType(ITEM_TYPE_FOOTER, R.layout.rv_item_footer); } @Override public int getItemViewType(int position) { RechargeBean item = getData().get(position); return item.getItemViewType(); // 使用 bean 中的 itemViewType } @Override protected void convert(BaseViewHolder helper, RechargeBean item) { int type = helper.getItemViewType(); if (type == ITEM_TYPE_NORMAL) { // 正常 item 显示逻辑 helper.setText(R.id.tv_gold_num, item.getCoins()); helper.setText(R.id.tv_money, String.format("¥%s", item.getMoney())); if (selectedPosition == helper.getAdapterPosition()) { helper.setBackgroundRes(R.id.cl_item, com.xscm.moduleutil.R.drawable.bg_10_white_sele); } else { helper.setBackgroundRes(R.id.cl_item, com.xscm.moduleutil.R.drawable.bg_r10_white); } helper.getView(R.id.cl_item).setOnClickListener(v -> { selectedPosition = helper.getAdapterPosition(); if (listener != null) { listener.onClick(item); } notifyDataSetChanged(); // 隐藏输入框 if (inputBoxVisibilityListener != null) { inputBoxVisibilityListener.onInputBoxVisibilityChanged(false); } }); } else if (type == ITEM_TYPE_FOOTER) { helper.setText(R.id.tv_gold_num, "自定义"); helper.getView(R.id.tv_gold_num).setOnClickListener(v -> { clearSelect(); // 清除所有选中状态 notifyDataSetChanged(); // 显示输入框 if (inputBoxVisibilityListener != null) { inputBoxVisibilityListener.onInputBoxVisibilityChanged(true); } }); } } public interface OnRechargeItemClickListener { void onClick(RechargeBean rechargeBean); } public void setListener(OnRechargeItemClickListener listener) { this.listener = listener; } public interface InputBoxVisibilityListener { void onInputBoxVisibilityChanged(boolean isVisible); } public void setInputBoxVisibilityListener(InputBoxVisibilityListener listener) { this.inputBoxVisibilityListener = listener; } /** * 取消所有选中 */ public void clearSelect() { selectedPosition = -1; notifyDataSetChanged(); } }