修改名称。

This commit is contained in:
2025-11-07 09:22:39 +08:00
parent d9cf55b053
commit a8dcfbb6a7
2203 changed files with 3 additions and 4 deletions

View File

@@ -0,0 +1,126 @@
package com.xscm.modulemain.adapter;
import android.text.TextUtils;
import android.view.View;
import android.widget.CheckBox;
import androidx.annotation.NonNull;
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.AlbumBean;
import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.widget.img.FullScreenUtil;
import java.util.ArrayList;
import java.util.List;
public class AlbumPhotoAdapter extends BaseMultiItemQuickAdapter<AlbumBean.ImageList, BaseViewHolder> {
private boolean isControlVisible = false;
private List<Integer> selectedPositions = new ArrayList<>(); // 保存选中的 position
// private SparseBooleanArray selectedPositions = new SparseBooleanArray();
public AlbumPhotoAdapter(List<AlbumBean.ImageList> data) {
super(data);
addItemType(1, R.layout.item_group);
addItemType(2, R.layout.item_photo);
}
public void showControl() {
isControlVisible = true;
notifyDataSetChanged(); // 刷新列表以更新 UI
}
public void hideControl() {
isControlVisible = false;
notifyDataSetChanged(); // 刷新列表以更新 UI
}
@Override
protected void convert(BaseViewHolder helper, AlbumBean.ImageList item) {
if (item.getItemType() == 1) {
helper.setText(R.id.tv_date, item.getCreatetime());
} else {
ImageUtils.loadHeadCC(item.getImage(), helper.getView(R.id.iv_photo));
helper.setVisible(R.id.tb_photo, isControlVisible);
helper.setVisible(R.id.v_checkbox, isControlVisible);
View vCheckbox = helper.getView(R.id.v_checkbox);
vCheckbox.setSelected(item.isSelected());
vCheckbox.setOnClickListener(v -> {
boolean isSelected = !item.isSelected(); // 切换当前状态
item.setSelected(isSelected);
vCheckbox.setSelected(isSelected);
// notifyItemChanged(helper.getBindingAdapterPosition()); // 刷新整个列表确保状态正确
});
helper.getView(R.id.tb_photo).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean isSelected = !item.isSelected();
item.setSelected(isSelected);
vCheckbox.setSelected(isSelected);
// notifyItemChanged(helper.getBindingAdapterPosition()); // 刷新整个列表确保状态正确
}
});
helper.getView(R.id.iv_photo).setOnClickListener(v -> {
FullScreenUtil.showFullScreenDialog(mContext,helper.getPosition(),getImageList() );
});
}
}
public List<String> getImageList(){
List<String> stringList=new ArrayList<>();
for (AlbumBean.ImageList item : getData()) {
if (item.getItemType() == 2) {
stringList.add(item.getImage());
}
}
return stringList;
}
public List<AlbumBean.ImageList> getSelectedItems() {
List<AlbumBean.ImageList> selectedItems = new ArrayList<>();
for (AlbumBean.ImageList item : getData()) {
if (item.isSelected()) {
selectedItems.add(item);
}
}
return selectedItems;
}
public String getSelectedPhotoIdsAsString() {
List<AlbumBean.ImageList> selectedPhotos = getSelectedItems();
List<String> idList = new ArrayList<>();
for (AlbumBean.ImageList photo : selectedPhotos) {
idList.add(photo.getId()); // 将每个 id 添加进 list
}
return TextUtils.join(",", idList); // 使用逗号拼接
}
public void clearSelections() {
for (AlbumBean.ImageList item : getData()) {
item.setSelected(false);
}
notifyDataSetChanged();
}
@Override
public void onViewRecycled(@NonNull BaseViewHolder holder) {
super.onViewRecycled(holder);
View vCheckbox = holder.getView(R.id.v_checkbox);
if (vCheckbox instanceof CheckBox) {
((CheckBox) vCheckbox).setChecked(false);
}
}
}

View File

@@ -0,0 +1,36 @@
package com.xscm.modulemain.adapter;
import static com.xscm.moduleutil.utils.UtilConfig.getContext;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.BindType;
public class BindCardAdapter extends BaseQuickAdapter<BindType.AllData, BaseViewHolder> {
private int selectedPosition = -1; // -1 表示未选中
public BindCardAdapter(int layoutResId) {
super(layoutResId);
}
public void setSelectedPosition(int position) {
selectedPosition = position;
notifyDataSetChanged();
}
public int getSelectedPosition() {
return selectedPosition;
}
@Override
protected void convert(BaseViewHolder helper, BindType.AllData item) {
helper.setText(R.id.tv_name, item.getName());
if (item.getIs_bind().equals("1")){
helper.setText(R.id.tv_status, "已绑定").setTextColor(R.id.tv_status, getContext().getResources().getColor(com.xscm.moduleutil.R.color.color_e2e2e2));
}else {
helper.setText(R.id.tv_status, "未绑定").setTextColor(R.id.tv_status, getContext().getResources().getColor(com.xscm.moduleutil.R.color.colorPrimary));
}
}
}

View File

@@ -0,0 +1,127 @@
package com.xscm.modulemain.adapter;
import static com.xscm.moduleutil.utils.UtilConfig.getContext;
import android.graphics.Color;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.alibaba.android.arouter.launcher.ARouter;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.BlackUserBean;
import com.xscm.moduleutil.color.ThemeableDrawableUtils;
import com.xscm.moduleutil.utils.ARouteConstants;
import com.xscm.moduleutil.utils.ColorManager;
import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.utils.MeHeadView;
import java.util.List;
/**
*@author qx
*@data 2025/5/19
*@description: 黑名单、关注、粉丝列表适配器
*/
public class BlackAdapter extends BaseQuickAdapter<BlackUserBean, BaseViewHolder> {
// 定义接口用于回调点击事件
public interface OnItemClickListener {
void onItemClick(BlackUserBean item);
}
private OnItemClickListener onItemClickListener;
public void setOnItemClickListener(OnItemClickListener listener) {
this.onItemClickListener = listener;
}
public BlackAdapter() {
super(R.layout.item_black);
}
@Override
protected void convert(BaseViewHolder helper, BlackUserBean item) {
MeHeadView headView = helper.getView(R.id.im_user);
headView.setData(item.getAvatar(), "", item.getSex() + "");
helper.setText(R.id.tv_nick_name, item.getNickname());
TextView imageView= helper.getView(R.id.im_g);
helper.setText(R.id.tv_oline, item.getIs_online() == 1 ? "[在线]" : "[离线]");
// 根据 type 设置图片资源
// 根据 type 和 status 设置图片资源
imageView.setVisibility(View.VISIBLE);
if (item.getType() == 0) { // 关注
if (item.getIs_follow() == 0) {
// imageView.setImageResource(com.xscm.moduleutil.R.mipmap.gz);
ThemeableDrawableUtils.setThemeableRoundedBackground( imageView, ColorManager.getInstance().getPrimaryColorInt(), 34);
imageView.setTextColor(ColorManager.getInstance().getButtonColorInt());
imageView.setText("关注");
} else {
// imageView.setImageResource(com.xscm.moduleutil.R.mipmap.yigz);
ThemeableDrawableUtils.setThemeableRoundedBackground( imageView, Color.parseColor("#EFF2F8"), 34);
imageView.setTextColor(Color.BLACK);
imageView.setText("已关注");
}
} else if (item.getType() == 1) { // 黑名单
// imageView.setImageResource(com.xscm.moduleutil.R.mipmap.yic);
ThemeableDrawableUtils.setThemeableRoundedBackground( imageView, Color.parseColor("#333333"), 34);
imageView.setTextColor(Color.WHITE);
imageView.setText("移除");
} else if (item.getType() == 2) { // 粉丝
if (item.getIs_follow() == 0) {
// imageView.setImageResource(com.xscm.moduleutil.R.mipmap.hg);
ThemeableDrawableUtils.setThemeableRoundedBackground( imageView, ColorManager.getInstance().getPrimaryColorInt(), 34);
imageView.setTextColor(ColorManager.getInstance().getButtonColorInt());
imageView.setText("回关");
} else {
// imageView.setImageResource(com.xscm.moduleutil.R.mipmap.yigz);
ThemeableDrawableUtils.setThemeableRoundedBackground( imageView, Color.parseColor("#EFF2F8"), 34);
imageView.setTextColor(Color.BLACK);
imageView.setText("已关注");
}
}else if (item.getType() == 3){
imageView.setVisibility(View.GONE);
}
// 设置点击事件
imageView.setOnClickListener(v -> {
if (onItemClickListener != null) {
onItemClickListener.onItemClick(item);
}
});
LinearLayout llContainer =helper.getView(R.id.ll_in);
llContainer.removeAllViews(); // 清空旧的 ImageView
List<String> images = item.getIcon(); // 获取图片列表
for (String url : images) {
if (url.contains("http")) {
ImageView imageView1 = new ImageView(getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
);
params.setMargins(0, 0, getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView1.setLayoutParams(params);
imageView1.setScaleType(ImageView.ScaleType.CENTER_CROP);
// 使用 Glide 加载图片
ImageUtils.loadHeadCC(url, imageView1);
llContainer.addView(imageView1);
}
}
headView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (item.getType() !=1){
ARouter.getInstance().build(ARouteConstants.USER_HOME_PAGE).withString("userId", item.getUser_id()+"").navigation();
}
}
});
}
}

View File

@@ -0,0 +1,275 @@
package com.xscm.modulemain.adapter;
import android.annotation.SuppressLint;
import android.text.SpannableStringBuilder;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.recyclerview.widget.RecyclerView;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.RoomAutionTimeBean;
import com.xscm.moduleutil.bean.RoomRelationBean;
import com.xscm.moduleutil.bean.RoonGiftModel;
import com.xscm.moduleutil.bean.ViewItem;
import com.xscm.moduleutil.utils.ImageUtils;
import java.util.ArrayList;
import java.util.List;
public class CardRelationAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private List<ViewItem> viewItems = new ArrayList<>();
private int selectedRelationPosition = -1;
private int selectedTimePosition = -1;
private int selectedGiftPosition = -1;
public void submitList(List<ViewItem> items) {
viewItems.clear();
viewItems.addAll(items);
notifyDataSetChanged();
}
@Override
public int getItemViewType(int position) {
return viewItems.get(position).getType();
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
switch (viewType) {
case ViewItem.TYPE_TEXT:
return new TextViewHolder(inflater.inflate(R.layout.item_text_view, parent, false));
case ViewItem.TYPE_RELATION:
return new RelationViewHolder(inflater.inflate(R.layout.item_relation, parent, false));
case ViewItem.TYPE_IMAGE_SELECTION:
return new RelationViewTimHolder(inflater.inflate(R.layout.item_relation, parent, false));
case ViewItem.TYPE_GIFT:
return new GiftViewHolder(inflater.inflate(R.layout.item_gift_card, parent, false));
default:
throw new IllegalArgumentException("Unknown view type");
}
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, @SuppressLint("RecyclerView") int position) {
ViewItem item = viewItems.get(position);
switch (item.getType()) {
case ViewItem.TYPE_TEXT:
((TextViewHolder) holder).bind((String) item.getData());
break;
case ViewItem.TYPE_RELATION:
RoomRelationBean relationBean = (RoomRelationBean) item.getData();
((RelationViewHolder) holder).bind(relationBean);
holder.itemView.setOnClickListener(v -> {
// 取消之前选中的 item
if (selectedRelationPosition != -1) {
ViewItem oldItem = viewItems.get(selectedRelationPosition);
if (oldItem.getData() instanceof RoomRelationBean) {
((RoomRelationBean) oldItem.getData()).setSelected(false);
}
}
// 设置当前 item 为选中
relationBean.setSelected(true);
selectedRelationPosition = position;
notifyDataSetChanged();
});
break;
case ViewItem.TYPE_GIFT:
RoonGiftModel giftModel = (RoonGiftModel) item.getData();
((GiftViewHolder)holder).bind(giftModel);
holder.itemView.setOnClickListener(v -> {
// 取消之前选中的 item
if (selectedGiftPosition != -1) {
ViewItem oldItem = viewItems.get(selectedGiftPosition);
if (oldItem.getData() instanceof RoonGiftModel) {
((RoonGiftModel) oldItem.getData()).setSelected(false);
}
}
// 设置当前 item 为选中
giftModel.setSelected(true);
selectedGiftPosition = position;
notifyDataSetChanged();
});
break;
case ViewItem.TYPE_IMAGE_SELECTION:
RoomAutionTimeBean roomAutionTimeBean = (RoomAutionTimeBean) item.getData();
((RelationViewTimHolder)holder).bind(roomAutionTimeBean);
holder.itemView.setOnClickListener(v -> {
// 取消之前选中的 item
if (selectedTimePosition != -1) {
ViewItem oldItem = viewItems.get(selectedTimePosition);
if (oldItem.getData() instanceof RoomAutionTimeBean) {
((RoomAutionTimeBean) oldItem.getData()).setSelected(false);
}
}
// 设置当前 item 为选中
roomAutionTimeBean.setSelected(true);
selectedTimePosition = position;
notifyDataSetChanged();
});
break;
}
}
public interface OnItemSelectedListener {
void onItemSelected(int viewType, int position);
}
private OnItemSelectedListener listener;
public void setOnItemSelectedListener(OnItemSelectedListener listener) {
this.listener = listener;
}
public RoomRelationBean getSelectedRelation() {
if (selectedRelationPosition != -1) {
ViewItem item = viewItems.get(selectedRelationPosition);
if (item.getData() instanceof RoomRelationBean) {
return (RoomRelationBean) item.getData();
}
}
return null;
}
public RoomAutionTimeBean getSelectedTime() {
if (selectedTimePosition != -1) {
ViewItem item = viewItems.get(selectedTimePosition);
if (item.getData() instanceof RoomAutionTimeBean) {
return (RoomAutionTimeBean) item.getData();
}
}
return null;
}
public RoonGiftModel getSelectedGift() {
if (selectedGiftPosition != -1) {
ViewItem item = viewItems.get(selectedGiftPosition);
if (item.getData() instanceof RoonGiftModel) {
return (RoonGiftModel) item.getData();
}
}
return null;
}
@Override
public int getItemCount() {
return viewItems.size();
}
static class TextViewHolder extends RecyclerView.ViewHolder {
TextView textView;
TextViewHolder(View itemView) {
super(itemView);
textView = itemView.findViewById(R.id.tv_name);
}
void bind(String text) {
textView.setText(text);
}
}
static class RelationViewHolder extends RecyclerView.ViewHolder {
TextView relationName;
RelationViewHolder(View itemView) {
super(itemView);
relationName = itemView.findViewById(R.id.tv_name);
}
void bind(RoomRelationBean bean) {
relationName.setText(bean.getName());
if (bean.isSelected()) {
relationName.setBackground(itemView.getResources().getDrawable(com.xscm.moduleutil.R.mipmap.gx_xz_bj));
relationName.setTextColor(itemView.getResources().getColor(com.xscm.moduleutil.R.color.color_FF333333));
} else {
relationName.setBackground(itemView.getResources().getDrawable(com.xscm.moduleutil.R.mipmap.gux_bj));
relationName.setTextColor(itemView.getResources().getColor(com.xscm.moduleutil.R.color.white));
}
}
}
static class RelationViewTimHolder extends RecyclerView.ViewHolder {
TextView relationName;
RelationViewTimHolder(View itemView) {
super(itemView);
relationName = itemView.findViewById(R.id.tv_name);
}
void bind(RoomAutionTimeBean bean) {
relationName.setText(bean.getDays()+"");
if (bean.isSelected()) {
relationName.setBackground(itemView.getResources().getDrawable(com.xscm.moduleutil.R.mipmap.gx_xz_bj));
relationName.setTextColor(itemView.getResources().getColor(com.xscm.moduleutil.R.color.color_FF333333));
} else {
relationName.setBackground(itemView.getResources().getDrawable(com.xscm.moduleutil.R.mipmap.gux_bj));
relationName.setTextColor(itemView.getResources().getColor(com.xscm.moduleutil.R.color.white));
}
}
}
static class GiftViewHolder extends RecyclerView.ViewHolder {
TextView tv_gift_name;
TextView tv_gift_price;
ImageView iv_gift_pic;
ConstraintLayout item_layout;
ImageView ivDownOn;
ConstraintLayout cl_iv_down_on;
GiftViewHolder(View itemView) {
super(itemView);
tv_gift_name = itemView.findViewById(R.id.tv_gift_name);
tv_gift_price = itemView.findViewById(R.id.tv_gift_price);
iv_gift_pic = itemView.findViewById(R.id.iv_gift_pic);
item_layout = itemView.findViewById(R.id.cl_gift);
ivDownOn = itemView.findViewById(R.id.iv_down_on);
cl_iv_down_on = itemView.findViewById(R.id.cl_iv_down_on);
}
void bind(RoonGiftModel bean) {
tv_gift_name.setText(bean.getGift_name());
//设置礼物价格
String surplusTxt = bean.getGift_price();
SpannableStringBuilder stringBuilder = new SpannableStringBuilder(surplusTxt);
//ForegroundColorSpan 为文字前景色BackgroundColorSpan为文字背景色
tv_gift_price.setText(stringBuilder);
// viewHolder.item_layout.setTag(R.id.id_gift_tag, giftModel);
//加载礼物图片
ImageUtils.loadImageView(bean.getBase_image(), iv_gift_pic);
//设置选中后的样式
if (bean.isSelected()) {//被选中
cl_iv_down_on.setBackgroundResource(com.xscm.moduleutil.R.mipmap.room_gift_bjx);
ivDownOn.setVisibility(View.GONE);
} else {
ivDownOn.setVisibility(View.GONE);
cl_iv_down_on.setBackgroundResource(0);
}
}
}
}

View File

@@ -0,0 +1,77 @@
package com.xscm.modulemain.adapter;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.TopRoom;
import com.xscm.moduleutil.utils.ImageUtils;
import com.zhpan.bannerview.BaseBannerAdapter;
import com.zhpan.bannerview.BaseViewHolder;
public class CarouselBannerAdapter extends BaseBannerAdapter<TopRoom> {
private OnItemClickListener onItemClickListener;
public void setOnItemClickListener(OnItemClickListener listener) {
this.onItemClickListener = listener;
}
@Override
protected void bindData(BaseViewHolder<TopRoom> holder, TopRoom data, int position, int pageSize) {
ImageUtils.loadHeadCC(data.getRoom_cover(), holder.itemView.findViewById(R.id.iv_follow_bg));
TextView textView= holder.itemView.findViewById(R.id.tv_num);
TextView textView2= holder.itemView.findViewById(R.id.tv_room_name);
textView.setText(data.getUser_list().size()+"");
textView2.setText(data.getRoom_name());
ImageView iv = holder.itemView.findViewById(R.id.iv_play);
ImageUtils.loadRes(com.xscm.moduleutil.R.drawable.voice_play, iv);
// List<TopRoom.UserList> user_list = data.getUser_list();
// if (user_list!= null && user_list.size() > 0) {
// RecyclerView recyclerView = holder.itemView.findViewById(R.id.rv_tags);
// recyclerView.setLayoutManager(new LinearLayoutManager(holder.itemView.getContext(), LinearLayoutManager.HORIZONTAL, false));
//
// // 设置item之间的间隔为负值实现重叠效果
// if (recyclerView.getItemDecorationCount() == 0) {
// recyclerView.addItemDecoration(new RecyclerView.ItemDecoration() {
// @Override
// public void getItemOffsets(@NonNull Rect outRect, @NonNull View view,
// @NonNull RecyclerView parent, @NonNull RecyclerView.State state) {
// super.getItemOffsets(outRect, view, parent, state);
// // 设置负间距实现重叠效果,根据需要调整数值
// outRect.left = -dpToPx(holder.itemView.getContext(), 8); // 重叠8dp
// }
//
// private int dpToPx(Context context, int dp) {
// return (int) TypedValue.applyDimension(
// TypedValue.COMPLEX_UNIT_DIP, dp,
// context.getResources().getDisplayMetrics());
// }
// });
// }
//
// CarouselImgAdapter adapter = new CarouselImgAdapter();
//
// // 创建最多包含3个元素的子列表
// int endIndex = Math.min(user_list.size(), 3);
// adapter.setNewData(user_list.subList(0, endIndex));
// recyclerView.setAdapter(adapter);
// }
// 设置点击事件
holder.itemView.setOnClickListener(v -> {
if (onItemClickListener != null) {
onItemClickListener.onItemClick(holder.itemView, data, position);
}
});
}
public interface OnItemClickListener {
void onItemClick(View view, TopRoom data, int position);
}
@Override
public int getLayoutId(int viewType) {
return R.layout.index_item_carousel;
}
}

View File

@@ -0,0 +1,18 @@
package com.xscm.modulemain.adapter;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.TopRoom;
import com.xscm.moduleutil.utils.ImageUtils;
public class CarouselImgAdapter extends BaseQuickAdapter<TopRoom.UserList, BaseViewHolder> {
public CarouselImgAdapter() {
super(R.layout.index_item_image);
}
@Override
protected void convert(BaseViewHolder helper, TopRoom.UserList item) {
ImageUtils.loadHeadCC(item.getAvatar(), helper.getView(R.id.riv_user_head));
}
}

View File

@@ -0,0 +1,40 @@
package com.xscm.modulemain.adapter;
import androidx.annotation.Nullable;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.MyRoomBean;
import com.xscm.moduleutil.utils.ImageUtils;
import java.util.List;
public class ChatRoomMyFollowAdapter extends BaseQuickAdapter<MyRoomBean, BaseViewHolder> {
private int index = -1;
public ChatRoomMyFollowAdapter() {
super(R.layout.room_index_item_chatroom_my_foot);
}
@Override
protected void convert(BaseViewHolder helper, MyRoomBean item) {
ImageUtils.loadHeadCC(item.getRoom_cover(), helper.getView(R.id.iv_follow_bg));
ImageUtils.loadHeadCC(item.getLabel_icon(), helper.getView(R.id.iv_type));
helper.setText(R.id.tv_name, item.getRoom_name());
helper.setText(R.id.tv_id, "ID: " + item.getRoom_id());
ImageUtils.loadRes(com.xscm.moduleutil.R.drawable.voice_play, helper.getView(R.id.iv_play));
}
public void setIndex(int index) {
this.index = index;
notifyDataSetChanged();
}
@Override
public void setNewData(@Nullable List<MyRoomBean> data) {
index = -1;
super.setNewData(data);
}
}

View File

@@ -0,0 +1,49 @@
package com.xscm.modulemain.adapter;
import android.widget.ImageView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.MyFootResp;
import com.xscm.moduleutil.utils.ImageUtils;
/**
* 历史记录
*/
public class ChatRoomMyFootAdapter extends BaseQuickAdapter<MyFootResp, BaseViewHolder> {
public ChatRoomMyFootAdapter() {
super(R.layout.room_index_item_chatroom_my_foot);
}
@Override
protected void convert(BaseViewHolder helper, MyFootResp item) {
ImageUtils.loadHeadCC(item.getRoom_cover(), helper.getView(R.id.iv_follow_bg));
// if (TextUtils.isEmpty(item.getLabel_icon())) {
// helper.setGone(R.id.iv_room_labe, false);
// } else {
// helper.setGone(R.id.iv_room_labe, true);
// ImageUtils.loadImageView(item.getLabel_icon(), helper.getView(R.id.iv_room_labe));
// }
if (item.getLabel_id().equals("23")){
helper.setImageResource(R.id.iv_type, com.xscm.moduleutil.R.mipmap.diang_c);
}else if (item.getLabel_id().equals("108")){
helper.setImageResource(R.id.iv_type, com.xscm.moduleutil.R.mipmap.youxi);
}else if (item.getLabel_id().equals("101")){
helper.setImageResource(R.id.iv_type, com.xscm.moduleutil.R.mipmap.youxi);
} else if (item.getLabel_id().equals("120")){//女神
helper.setImageResource(R.id.iv_type, com.xscm.moduleutil.R.mipmap.nvshen);
}else if (item.getLabel_id().equals("121")){//男神
helper.setImageResource(R.id.iv_type, com.xscm.moduleutil.R.mipmap.nans);
}
// ImageUtils.loadGift(helper.getView(R.id.iv_hot), ImageUtils.ANIM);
helper.setText(R.id.tv_name, item.getRoom_name());
// helper.setText(R.id.tv_id, "ID: " + item.getRoom_id());
helper.setText(R.id.tv_num, item.getPopularity());
ImageView iv = helper.getView(R.id.iv_play);
ImageUtils.loadRes(com.xscm.moduleutil.R.drawable.voice_play, iv);
// helper.setVisible(R.id.rl_lock, item.getLocked() == 1);
// helper.setGone(R.id.tv_clean, false);
}
}

View File

@@ -0,0 +1,43 @@
package com.xscm.modulemain.adapter;
import androidx.annotation.Nullable;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.MyRoomBean;
import com.xscm.moduleutil.utils.ImageUtils;
import java.util.List;
public class ChatRoomMyManageAdapter extends BaseQuickAdapter<MyRoomBean, BaseViewHolder> {
private int index = -1;
public ChatRoomMyManageAdapter() {
super(R.layout.room_index_item_chatroom_my_foot);
}
@Override
protected void convert(BaseViewHolder helper, MyRoomBean item) {
ImageUtils.loadHeadCC(item.getRoom_cover(), helper.getView(R.id.iv_follow_bg));
ImageUtils.loadHeadCC(item.getLabel_icon(), helper.getView(R.id.iv_type));
// ImageUtils.loadGift(helper.getView(R.id.iv_hot), ImageUtils.ANIM);
helper.setText(R.id.tv_name, item.getRoom_name());
helper.setText(R.id.tv_id, "ID: " + item.getRoom_id());
// helper.setText(R.id.tv_num, item.get());
ImageUtils.loadRes(com.xscm.moduleutil.R.drawable.voice_play, helper.getView(R.id.iv_play));
// }
}
public void setIndex(int index) {
this.index = index;
notifyDataSetChanged();
}
@Override
public void setNewData(@Nullable List<MyRoomBean> data) {
index = -1;
super.setNewData(data);
}
}

View File

@@ -0,0 +1,77 @@
package com.xscm.modulemain.adapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.HeatedBean;
import com.xscm.moduleutil.utils.ImageUtils;
import java.util.List;
public class CircleCategoryAdapter extends RecyclerView.Adapter<CircleCategoryAdapter.ViewHolder> {
private List<HeatedBean> dataList;
private OnItemClickListener onItemClickListener;
public void setOnItemClickListener(OnItemClickListener listener) {
this.onItemClickListener = listener;
}
public CircleCategoryAdapter(List<HeatedBean> dataList) {
this.dataList = dataList;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_circle_category, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
HeatedBean model = dataList.get(position);
holder.tvTitle.setText(model.getTitle());
holder.tvTitleContent.setText(model.getCount()+"条动态");
if (model.getPic()==null){
holder.ivIcon.setImageResource(com.xscm.moduleutil.R.mipmap.default_avatar);
}else {
ImageUtils.loadHeadCC(model.getPic(), holder.ivIcon);
// 加载图片等逻辑
}
holder.itemView.setOnClickListener(v -> {
if (onItemClickListener != null && model != null) {
onItemClickListener.onItemClick(holder.itemView, model, position);
}
});
}
@Override
public int getItemCount() {
return dataList != null ? dataList.size() : 0;
}
static class ViewHolder extends RecyclerView.ViewHolder {
TextView tvTitle;
ImageView ivIcon;
TextView tvTitleContent;
public ViewHolder(@NonNull View itemView) {
super(itemView);
tvTitle = itemView.findViewById(R.id.tvTitle);
ivIcon = itemView.findViewById(R.id.ivAvatar);
tvTitleContent = itemView.findViewById(R.id.tvDescription);
}
}
public interface OnItemClickListener {
void onItemClick(View view, HeatedBean data, int position);
}
}

View File

@@ -0,0 +1,50 @@
package com.xscm.modulemain.adapter;
import android.view.View;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.BaseListData;
import com.xscm.moduleutil.bean.HeatedBean;
import com.zhpan.bannerview.BaseBannerAdapter;
import com.zhpan.bannerview.BaseViewHolder;
import java.util.List;
public class CirleCategoryBannerAdapter extends BaseBannerAdapter<BaseListData> {
List<HeatedBean> list;
private OnItemClickListener onItemClickListener;
public void setOnItemClickListener(OnItemClickListener listener) {
this.onItemClickListener = listener;
}
@Override
protected void bindData(BaseViewHolder<BaseListData> holder, BaseListData data, int position, int pageSize) {
CircleCategoryAdapter adapter = new CircleCategoryAdapter(data.getData());
RecyclerView recyclerView = holder.itemView.findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new GridLayoutManager(holder.itemView.getContext(), 2));
recyclerView.setAdapter(adapter);
adapter.setOnItemClickListener(new CircleCategoryAdapter.OnItemClickListener() {
@Override
public void onItemClick(View view, HeatedBean data, int position) {
onItemClickListener.onItemClick(view, data, position);
}
});
}
@Override
public int getLayoutId(int viewType) {
return R.layout.item_cirle_category_grid;
}
public interface OnItemClickListener {
void onItemClick(View view, HeatedBean data, int position);
}
}

View File

@@ -0,0 +1,718 @@
package com.xscm.modulemain.adapter;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Handler;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.TextUtils;
import android.text.style.ForegroundColorSpan;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.ConstraintLayout;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.DataSource;
import com.bumptech.glide.load.engine.GlideException;
import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.target.SimpleTarget;
import com.bumptech.glide.request.target.Target;
import com.bumptech.glide.request.transition.Transition;
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.modulemain.FakeNinePatchDrawable;
import com.xscm.moduleutil.bean.GiftBean;
import com.xscm.moduleutil.bean.RoomMessageEvent;
import com.xscm.moduleutil.bean.UserInfo;
import com.xscm.moduleutil.bean.room.EMMessageInfo;
import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.utils.logger.Logger;
import com.xscm.moduleutil.widget.AdaptiveImageView;
import com.xscm.moduleutil.widget.GifAvatarOvalView;
import com.xscm.moduleutil.widget.img.BubbleBackgroundHelper;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
/**
* @author xf
*/
public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, BaseViewHolder> {
// private int[] a = {R.drawable.random0s, R.drawable.random1s, R.drawable.random2s, R.drawable.random3s, R.drawable.random4s, R.drawable.random5s, R.drawable.random6s, R.drawable.random7s, R.drawable.random8s, R.drawable.random9s};
private int listShowType = 1;
public static int SHOW_TYPE_ALL = 1;
public static int SHOW_TYPE_USER = 2;
public static int SHOW_TYPE_SYSTEM = 3;
private List<EMMessageInfo> allMsgList;
private List<EMMessageInfo> userMsgList;
private List<EMMessageInfo> systemMsgList;
private String messageNameColor = "#00C8FF";//名称的颜色
private String messageGiftColor = "#FFE309";//礼物的颜色
public EaseChatAdapter() {
super(null);
addItemType(1, com.xscm.moduleutil.R.layout.ease_row_received_message_system);//系统消息、官方公告
addItemType(2, com.xscm.moduleutil.R.layout.ease_row_received_message_user_send);//用户发送的消息
addItemType(3, com.xscm.moduleutil.R.layout.ease_row_received_message_system);//加入房间 、赠送礼物、上下麦、禁言 2025年6月12日15:42:08让和聊天显示的是同一个额布局后面需要修改
// addItemType(3, com.qxcm.moduleutil.R.layout.ease_row_received_message_join_room);//加入房间 、赠送礼物、上下麦、禁言
addItemType(4, com.xscm.moduleutil.R.layout.ease_row_received_message_new_user);//新用户注册
addItemType(5, com.xscm.moduleutil.R.layout.ease_row_received_message_wagging);//摇签
addItemType(6, com.xscm.moduleutil.R.layout.ease_row_received_message_expression);//表情
// addItemType(8, com.qxcm.moduleutil.R.layout.ease_row_received_message_game);//球球大作战
// addItemType(9, com.qxcm.moduleutil.R.layout.ease_row_received_message_demand);//派单需求
// addItemType(10, com.qxcm.moduleutil.R.layout.ease_row_received_message_red_rain);//红包雨消息
// addItemType(11, com.qxcm.moduleutil.R.layout.ease_row_received_message_red_rain);//红包雨消息结束
allMsgList = new ArrayList<>();
userMsgList = new ArrayList<>();
systemMsgList = new ArrayList<>();
}
public void setShowType(int type) {
if (type == listShowType) {
return;
}
listShowType = type;
List currData = new ArrayList();
if (type == SHOW_TYPE_ALL) {
currData.addAll(allMsgList);
}
if (type == SHOW_TYPE_USER) {
currData.addAll(userMsgList);
}
if (type == SHOW_TYPE_SYSTEM) {
currData.addAll(systemMsgList);
}
setNewData(currData);
//notifyDataSetChanged();
}
private SpannableStringBuilder getSpannable(RoomMessageEvent message) {
// 在 Android 中实现类似的富文本功能
SpannableStringBuilder spannable = new SpannableStringBuilder(message.getText().getText() != null ? message.getText().getText() : "");
// 设置发送者昵称的颜色
if (message.getText().getFromUserInfo() != null && !TextUtils.isEmpty(message.getText().getFromUserInfo().getNickname())) {
String nickname = message.getText().getFromUserInfo().getNickname();
int startIndex = message.getText().getText().indexOf(nickname);
if (startIndex != -1) {
int endIndex = startIndex + nickname.length();
spannable.setSpan(new ForegroundColorSpan(Color.parseColor(messageNameColor)), startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
// 设置接收者昵称的颜色
if (message.getText().getToUserInfo() != null && !TextUtils.isEmpty(message.getText().getToUserInfo().getNickname())) {
String nickname = message.getText().getToUserInfo().getNickname();
int startIndex = message.getText().getText().indexOf(nickname);
if (startIndex != -1) {
int endIndex = startIndex + nickname.length();
spannable.setSpan(new ForegroundColorSpan(Color.parseColor(messageNameColor)), startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
// 处理礼物名称的颜色设置
if (message.getText().getGiftInfo() != null && !TextUtils.isEmpty(message.getText().getGiftInfo().getGift_name())) {
String[] giftNames = message.getText().getGiftInfo().getGift_name().split(",");
for (String giftName : giftNames) {
List<int[]> occurrences = findAllOccurrencesOfString(message.getText().getText(), giftName);
for (int[] range : occurrences) {
spannable.setSpan(new ForegroundColorSpan(Color.parseColor(messageGiftColor)), range[0], range[1], Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
}
// 处理多个礼物信息的颜色设置
if (message.getText().getGiftInfos() != null && !message.getText().getGiftInfos().isEmpty()) {
for (GiftBean gift : message.getText().getGiftInfos()) {
if (!TextUtils.isEmpty(gift.getGift_name())) {
int startIndex = message.getText().getText().indexOf(gift.getGift_name());
if (startIndex != -1) {
int endIndex = startIndex + gift.getGift_name().length();
spannable.setSpan(new ForegroundColorSpan(Color.parseColor(messageGiftColor)), startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
}
}
// 处理多个接收者信息的颜色设置
if (message.getText().getToUserInfos() != null && !message.getText().getToUserInfos().isEmpty()) {
for (int i = 0; i < message.getText().getToUserInfos().size(); i++) {
UserInfo userModel = message.getText().getToUserInfos().get(i);
if (!TextUtils.isEmpty(userModel.getNickname())) {
List<int[]> occurrences = findAllOccurrencesOfString(message.getText().getText(), userModel.getNickname());
for (int[] range : occurrences) {
spannable.setSpan(new ForegroundColorSpan(Color.parseColor(messageNameColor)), range[0], range[1], Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
}
}
return spannable;
}
/**
* 查找字符串中所有子字符串出现的位置
*
* @param text 原始文本
* @param searchString 要查找的子字符串
* @return 包含所有出现位置的列表,每个位置用 [start, end] 表示
*/
private List<int[]> findAllOccurrencesOfString(String text, String searchString) {
List<int[]> occurrences = new ArrayList<>();
if (TextUtils.isEmpty(text) || TextUtils.isEmpty(searchString)) {
return occurrences;
}
int index = text.indexOf(searchString);
while (index >= 0) {
occurrences.add(new int[]{index, index + searchString.length()});
index = text.indexOf(searchString, index + searchString.length());
}
return occurrences;
}
@Override
protected void convert(BaseViewHolder helper, EMMessageInfo item) {
RoomMessageEvent emMessage = item.getEmMessage();
// 重置 ImageView 状态,防止复用导致的图片错乱
switch (helper.getItemViewType()) {
case 1:
helper.getView(R.id.tv_content).setVisibility(View.VISIBLE);
helper.setText(R.id.tv_content, getSpannable(emMessage));
// helper.setText(R.id.tv_content, emMessage.getText().getText());
// tv_content.setTextColor(ColorManager.getInstance().getPrimaryColorInt());
break;
case 2:
AdaptiveImageView emojiImageView = helper.getView(com.xscm.moduleutil.R.id.im_emj);
emojiImageView.setTag("");
Glide.with(mContext).clear(emojiImageView);
emojiImageView.setVisibility(View.VISIBLE);
helper.getView(com.xscm.moduleutil.R.id.tv_content).setVisibility(View.GONE);
ImageUtils.loadHeadCC(emMessage.getText().getFromUserInfo().getAvatar(), helper.getView(com.xscm.moduleutil.R.id.avatar));
helper.setText(com.xscm.moduleutil.R.id.tv_name, emMessage.getText().getFromUserInfo().getNickname());
if (emMessage.getText().getText() != null) {
helper.setText(com.xscm.moduleutil.R.id.tv_content, getSpannable(emMessage));
}
// helper.setText(com.xscm.moduleutil.R.id.tv_content, emMessage.getText().getText());
List<String> images = emMessage.getText().getFromUserInfo().getIcon();
LinearLayout ll_images = helper.getView(com.xscm.moduleutil.R.id.line);
ll_images.removeAllViews();
for (String url : images) {
if (url.contains("http")) {
ImageView imageView = new ImageView(helper.itemView.getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57),
helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
);
params.setMargins(0, 0, helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView.setLayoutParams(params);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
// 使用 Glide 加载图片
ImageUtils.loadHeadCC(url, imageView);
ll_images.addView(imageView);
}
}
if (emMessage.getText().getFromUserInfo().getChat_bubble() != null && !emMessage.getText().getFromUserInfo().getChat_bubble().isEmpty()) {
// 使用 Glide 加载图片并设置名称
String imageUrl = emMessage.getText().getFromUserInfo().getChat_bubble();
Glide.with(mContext)
.load(imageUrl)
.into(new SimpleTarget<Drawable>() {
@Override
public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
// 将资源转换为 Bitmap
if (resource instanceof BitmapDrawable) {
Bitmap bitmap = ((BitmapDrawable) resource).getBitmap();
// 创建新的文件名
Drawable fakeNinePatch = new FakeNinePatchDrawable(bitmap, 0.4f, 0.4f, 0.6f, 0.5f);
// 保存图片到本地
helper.getView(com.xscm.moduleutil.R.id.bubble).setBackground(fakeNinePatch);
}
}
@Override
public void onLoadFailed(@Nullable Drawable errorDrawable) {
// 加载失败处理
}
});
} else {
helper.getView(com.xscm.moduleutil.R.id.bubble).setBackgroundResource(com.xscm.moduleutil.R.drawable.ease_row_pubilc_user_bg);
}
if (emMessage.getText().getEmoji() != null) {
// 为每个加载任务设置唯一标识
String uniqueId = emMessage.getRoomId() + "_" + helper.getLayoutPosition();
emojiImageView.setTag(uniqueId);
if (Objects.equals(emMessage.getText().getEmoji().getAnimate_image(), "") ||
emMessage.getText().getEmoji().getAnimate_image().isEmpty()) {
// 检查视图是否仍属于当前数据项
if (uniqueId.equals(emojiImageView.getTag())) {
ImageUtils.loadHeadCC(emMessage.getText().getEmoji().getImage(), emojiImageView);
}
return;
}
// 使用 RequestListener 监听加载完成
Glide.with(mContext)
.load(emMessage.getText().getEmoji().getAnimate_image())
.listener(new RequestListener<Drawable>() {
@Override
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target,
DataSource dataSource, boolean isFirstResource) {
// 检查视图是否仍属于当前数据项
if (uniqueId.equals(emojiImageView.getTag())) {
// 加载完成后执行
new Handler().postDelayed(() -> {
// 再次检查视图状态
if (uniqueId.equals(emojiImageView.getTag())) {
Glide.with(mContext)
.load(emMessage.getText().getEmoji().getImage())
.into(emojiImageView);
}
}, 1500);
}
return false;
}
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target,
boolean isFirstResource) {
return false;
}
})
.into(emojiImageView);
} else {
helper.getView(com.xscm.moduleutil.R.id.tv_content).setVisibility(View.VISIBLE);
emojiImageView.setVisibility(View.GONE);
}
break;
case 3:
// if (emMessage.getText().getFromUserInfo().getChat_bubble() != null && !emMessage.getText().getFromUserInfo().getChat_bubble().isEmpty()) {
//// helper.getView(com.xscm.moduleutil.R.id.bubble).setBackgroundResource(com.xscm.moduleutil.R.mipmap.qipaokang);
//// ImageUtils.loadHeadCC(emMessage.getText().getFromUserInfo().getChat_bubble(), helper.getView(com.xscm.moduleutil.R.id.network_background));
//
// // 使用 Glide 加载图片并设置名称
// String imageUrl = emMessage.getText().getFromUserInfo().getChat_bubble();
//
// Glide.with(mContext)
// .load(imageUrl)
// .into(new SimpleTarget<Drawable>() {
// @Override
// public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
// // 将资源转换为 Bitmap
// if (resource instanceof BitmapDrawable) {
// Bitmap bitmap = ((BitmapDrawable) resource).getBitmap();
// // 创建新的文件名
// Drawable fakeNinePatch = new FakeNinePatchDrawable(bitmap, 0.4f, 0.4f, 0.6f, 0.5f);
//
// // 保存图片到本地
// helper.getView(com.xscm.moduleutil.R.id.bubble).setBackground(fakeNinePatch);
// }
// }
//
// @Override
// public void onLoadFailed(@Nullable Drawable errorDrawable) {
// // 加载失败处理
// }
// });
// } else {
// helper.getView(com.xscm.moduleutil.R.id.bubble1).setBackgroundResource(com.xscm.moduleutil.R.drawable.ease_row_pubilc_user_bg);
// }
// if (emMessage.getText().getFromUserInfo() != null && emMessage.getText().getFromUserInfo().getAvatar() != null) {
// ImageUtils.loadHeadCC(emMessage.getText().getFromUserInfo().getAvatar(), helper.getView(com.xscm.moduleutil.R.id.avatar));
// }
// helper.setText(com.xscm.moduleutil.R.id.tv_name, emMessage.getText().getFromUserInfo().getNickname());
// helper.setText(com.xscm.moduleutil.R.id.tv_content, emMessage.getText().getText());
helper.getView(R.id.tv_content).setVisibility(View.VISIBLE);
helper.setText(R.id.tv_content, getSpannable(emMessage));
// List<String> images1 = emMessage.getText().getFromUserInfo().getIcon();
// LinearLayout ll_images1 = helper.getView(com.xscm.moduleutil.R.id.line);
// ll_images1.removeAllViews();
// if (images1 == null) {
// return;
// }
// for (String url : images1) {
// if (url.contains("http")) {
// ImageView imageView = new ImageView(helper.itemView.getContext());
// LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
// helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57),
// helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
// );
// params.setMargins(0, 0, helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
// imageView.setLayoutParams(params);
// imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
// // 使用 Glide 加载图片
// ImageUtils.loadHeadCC(url, imageView);
// ll_images1.addView(imageView);
// }
// }
break;
// case 4:
// TextView tvContent7 = helper.getView(R.id.tv_content);
// ivNew = helper.getView(R.id.new_view);
// ivNew.setNew(1);
// tvContent7.setText(new SpanUtils().append(spanned).create());
// break;
// //抽签
// case 5:
// String number = emMessage.getStringAttribute("number", "");
// ivRole = helper.getView(R.id.iv_role);
// ivNew = helper.getView(R.id.iv_new);
// ivGrade = helper.getView(R.id.iv_grade);
// ivTitle = helper.getView(R.id.iv_title_label);
// ivNHobility = helper.getView(R.id.iv_nobility);
// tvName = helper.getView(R.id.tv_name);
// TextView tvContent5 = helper.getView(R.id.tv_content);
// ivRole.setRole(Integer.parseInt(role));
// ivNew.setNew(Integer.parseInt(userIsNew));
// ivGrade.setGrade(rankIcon);
// //称号图标
// try {
// String s = user_title.substring(user_title.lastIndexOf("=") + 1);
// int mWidth = (int) (Float.parseFloat(s) * 20);
// int mHeight = 20;
// ViewGroup.LayoutParams layoutParams = ivTitle.getLayoutParams();
// layoutParams.width = ConvertUtils.dp2px(mWidth);
// layoutParams.height = ConvertUtils.dp2px(mHeight);
// ivTitle.setLayoutParams(layoutParams);
// } catch (Exception e) {
// e.printStackTrace();
// }
// ivTitle.setLabelView(user_title);
// ivNHobility.setNobility(nobilityIcon);
// ImageUtils.loadIcon(charmIcon, helper.getView(R.id.iv_charm));
// tvName.setText(String.format("%s:", nickname));
// tvContent5.setText(new SpanUtils().append(spanned).create());
// GlideApp.with(mContext).load(String.format("http://soundriver.oss-cn-hangzhou.aliyuncs.com/custom/random%ss.webp", number)).into(new SimpleTarget<Drawable>() {
// @Override
// public void onResourceReady(@NonNull Drawable drawable, @Nullable Transition<? super Drawable> transition) {
// if (drawable instanceof WebpDrawable) {
// AppCompatImageView imageView = helper.getView(R.id.iv_wagginh);
// imageView.setImageDrawable(drawable);
// ((WebpDrawable) drawable).start();
// ((WebpDrawable) drawable).setLoopCount(1);
// ((WebpDrawable) drawable).registerAnimationCallback(new Animatable2Compat.AnimationCallback() {
// @Override
// public void onAnimationEnd(Drawable drawable) {
// super.onAnimationEnd(drawable);
// helper.setImageResource(R.id.iv_wagginh, a[Integer.parseInt(number)]);
// }
// });
// }
// }
// });
// break;
// //表情
// case 6:
// ivRole = helper.getView(R.id.iv_role);
// ivNew = helper.getView(R.id.iv_new);
// ivGrade = helper.getView(R.id.iv_grade);
// ivTitle = helper.getView(R.id.iv_title_label);
// ivNHobility = helper.getView(R.id.iv_nobility);
// tvName = helper.getView(R.id.tv_name);
// ivRole.setRole(Integer.parseInt(role));
// ivNew.setNew(Integer.parseInt(userIsNew));
// ivGrade.setGrade(rankIcon);
// ivTitle.setLabelView(user_title);
// ivNHobility.setNobility(nobilityIcon);
// tvName.setText(Html.fromHtml(nickname));
// ImageUtils.loadIcon(charmIcon, helper.getView(R.id.iv_charm));
// ImageLoader.loadIcon(mContext, helper.getView(R.id.iv_expression), emoji_special);
//
// //称号图标
// try {
// String s = user_title.substring(user_title.lastIndexOf("=") + 1);
// int mWidth = (int) (Float.parseFloat(s) * 20);
// int mHeight = 20;
// ViewGroup.LayoutParams layoutParams = ivTitle.getLayoutParams();
// layoutParams.width = ConvertUtils.dp2px(mWidth);
// layoutParams.height = ConvertUtils.dp2px(mHeight);
// ivTitle.setLayoutParams(layoutParams);
// } catch (Exception e) {
// e.printStackTrace();
// }
// break;
// //球球大作战
// case 8:
// String first = emMessage.getStringAttribute("first", "");
// String second = emMessage.getStringAttribute("second", "");
// String third = emMessage.getStringAttribute("third", "");
//
// ivRole = helper.getView(R.id.iv_role);
// ivNew = helper.getView(R.id.iv_new);
// ivGrade = helper.getView(R.id.iv_grade);
// ivTitle = helper.getView(R.id.iv_title_label);
// ivNHobility = helper.getView(R.id.iv_nobility);
// tvName = helper.getView(R.id.tv_name);
// TextView tvContent8 = helper.getView(R.id.tv_content);
//
// ivRole.setRole(Integer.parseInt(role));
// ivNew.setNew(Integer.parseInt(userIsNew));
// ivGrade.setGrade(rankIcon);
// ivTitle.setLabelView(user_title);
// ivNHobility.setNobility(nobilityIcon);
// ImageUtils.loadIcon(charmIcon, helper.getView(R.id.iv_charm));
// tvName.setText(Html.fromHtml(nickname));
// if (emMessage.getIntAttribute("type", 0) == 6019) {//亮球
// helper.setVisible(R.id.iv_qiu1, true);
// helper.setVisible(R.id.iv_qiu2, true);
// helper.setVisible(R.id.iv_qiu3, true);
//
// try {
// helper.setImageResource(R.id.iv_qiu1, mContext.getResources().getIdentifier(first, "mipmap", mContext.getPackageName()));
// helper.setImageResource(R.id.iv_qiu2, mContext.getResources().getIdentifier(second, "mipmap", mContext.getPackageName()));
// helper.setImageResource(R.id.iv_qiu3, mContext.getResources().getIdentifier(third, "mipmap", mContext.getPackageName()));
// } catch (Exception e) {
// e.printStackTrace();
// }
//
// } else {
// helper.setVisible(R.id.iv_qiu1, false);
// helper.setVisible(R.id.iv_qiu2, false);
// helper.setVisible(R.id.iv_qiu3, false);
// }
// spanUtils.append(spanned);
// tvContent8.setText(spanUtils.create());
// break;
// case 10:
// TextView tv = helper.getView(R.id.tv_content);
// float height = tv.getTextSize();//获取字体高度
// String bell = "<img src=\"" + R.drawable.ease_message_bell + "\"/>"; //前面加一个铃铛
// Spanned sp = Html.fromHtml(bell + txtBody.getMessage(), source -> {
// Drawable drawable;
// drawable = mContext.getResources().getDrawable(Integer.parseInt(source));
// drawable.setBounds(0, 0, (int) (height * 36f / 42f), (int) height); //等比例设置铃铛大小
// return drawable;
// }, null);
// tv.setText(sp);
// helper.setGone(R.id.tv_red_rain_detail, false);
// break;
// case 11:
// TextView tv11 = helper.getView(R.id.tv_content);
// float height11 = tv11.getTextSize();//获取字体高度
// String bell11 = "<img src=\"" + R.drawable.ease_message_bell + "\"/>"; //前面加一个铃铛
// Spanned sp11 = Html.fromHtml(bell11 + txtBody.getMessage(), source -> {
// Drawable drawable;
// drawable = mContext.getResources().getDrawable(Integer.parseInt(source));
// drawable.setBounds(0, 0, (int) (height11 * 36f / 42f), (int) height11); //等比例设置铃铛大小
// return drawable;
// }, null);
// tv11.setText(sp11);
// helper.setGone(R.id.tv_red_rain_detail, true);
// helper.addOnClickListener(R.id.tv_red_rain_detail);
// break;
// default:
// helper.setText(R.id.tv_content, Html.fromHtml(txtBody.getMessage()));
// break;
}
}
private void loadBubbleBackground(Context context, String bubbleUrl, ConstraintLayout messageTextView) {
// String bubbleUrl = "https://midi01.oss-cn-beijing.aliyuncs.com/iosaixinqipao_17610381079117.png";
BubbleBackgroundHelper.loadBubbleBackground(context, bubbleUrl,
new BubbleBackgroundHelper.OnBubbleBackgroundLoadedListener() {
@Override
public void onBackgroundLoaded(Drawable bubbleDrawable) {
// 设置背景
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
messageTextView.setBackground(bubbleDrawable);
} else {
messageTextView.setBackgroundDrawable(bubbleDrawable);
}
// 设置内边距,让文字不会贴边
int padding = dpToPx(context, 10);
messageTextView.setPadding(padding, padding, padding, padding);
}
@Override
public void onLoadFailed() {
// 加载失败,使用默认背景
messageTextView.setBackgroundResource(com.xscm.moduleutil.R.drawable.ease_row_pubilc_user_bg);
}
});
}
private int dpToPx(Context context, int dp) {
return (int) (dp * context.getResources().getDisplayMetrics().density);
}
@Override
public void onViewRecycled(@NonNull BaseViewHolder holder) {
Logger.e("onViewRecycled", "onViewRecycled");
// AdaptiveImageView imEmj = (AdaptiveImageView)holder.getView(com.xscm.moduleutil.R.id.im_emj);
GifAvatarOvalView avatarOvalView = holder.getView(com.xscm.moduleutil.R.id.avatar);
ImageView ivNobility = holder.getView(com.xscm.moduleutil.R.id.iv_nobility);
ImageView ivCharm = holder.getView(com.xscm.moduleutil.R.id.iv_charm);
if (mContext instanceof Activity && (((Activity) mContext).isFinishing() || ((Activity) mContext).isDestroyed())) {
return;
}
try {
// 清理表情图片
if (holder.getView(com.xscm.moduleutil.R.id.im_emj) != null) {
ImageView imEmj = (ImageView) holder.getView(com.xscm.moduleutil.R.id.im_emj);
imEmj.setTag(null);
imEmj.setImageDrawable(null);
Glide.with(imEmj.getContext()).clear(imEmj);
}
// 清理其他图片
if (avatarOvalView != null) {
avatarOvalView.setImageDrawable(null);
Glide.with(avatarOvalView.getContext()).clear(avatarOvalView);
}
if (ivNobility != null) {
ivNobility.setImageDrawable(null);
Glide.with(ivNobility.getContext()).clear(ivNobility);
}
if (ivCharm != null) {
ivCharm.setImageDrawable(null);
Glide.with(ivCharm.getContext()).clear(ivCharm);
}
} catch (Exception e) {
e.printStackTrace();
}
super.onViewRecycled(holder);
}
/**
* 清除数据
*
* @param
*/
public void clearData() {
this.mData.clear();
userMsgList.clear();
systemMsgList.clear();
allMsgList.clear();
notifyDataSetChanged();
}
public void clearSomeData() {
if (this.mData != null && mData.size() > 500) {
List<EMMessageInfo> emMessageInfos = mData.subList(500, mData.size());
setNewData(emMessageInfos);
}
if (allMsgList.size() > 500) {
allMsgList = allMsgList.subList(500, allMsgList.size());
}
if (userMsgList.size() > 500) {
userMsgList = userMsgList.subList(500, userMsgList.size());
}
if (systemMsgList.size() > 500) {
systemMsgList = systemMsgList.subList(500, systemMsgList.size());
}
}
@Override
public void addData(@NonNull EMMessageInfo data) {
// 添加到对应的存储列表
addToStorageLists(data);
// 维护数据量限制
maintainDataLimits();
// 根据显示类型决定是否添加到适配器
if (shouldAddToAdapter(data)) {
super.addData(data);
// 确保适配器数据量也不超过限制
if (mData.size() > 100) {
int removeCount = mData.size() - 100;
mData.subList(0, removeCount).clear();
notifyDataSetChanged();
}
}
}
private void addToStorageLists(EMMessageInfo data) {
switch (data.getItemType()) {
case 1: // 系统消息
allMsgList.add(data);
break;
case 2: // 用户消息
userMsgList.add(data);
allMsgList.add(data);
break;
case 3: // 系统消息类型3
systemMsgList.add(data);
allMsgList.add(data);
break;
}
}
private void maintainDataLimits() {
// 确保所有存储列表都不超过最大限制
trimListToMaxSize(allMsgList);
trimListToMaxSize(userMsgList);
trimListToMaxSize(systemMsgList);
}
private void trimListToMaxSize(List<EMMessageInfo> list) {
if (list.size() > 100) {
int removeCount = list.size() - 100;
list.subList(0, removeCount).clear();
}
}
private boolean shouldAddToAdapter(EMMessageInfo data) {
// return (listShowType == SHOW_TYPE_ALL && (data.getItemType() == 1 || data.getItemType() == 2)) ||
// (listShowType == SHOW_TYPE_USER && data.getItemType() == 2) ||
// (listShowType == SHOW_TYPE_SYSTEM && data.getItemType() == 3);
return true;
}
@Override
public void addData(@NonNull Collection<? extends EMMessageInfo> newData) {
// super.addData(newData);
if (newData == null || newData.size() == 0) {
return;
}
List<EMMessageInfo> list = new ArrayList<>();
list.addAll(newData);
for (int i = 0; i < list.size(); i++) {
addData(list.get(i));
}
}
}

View File

@@ -0,0 +1,39 @@
package com.xscm.modulemain.adapter;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.room.EmotionDeatils;
import com.xscm.moduleutil.utils.ImageUtils;
public class EmotionAdapter extends BaseQuickAdapter<EmotionDeatils, BaseViewHolder> {
// 转换后的 Java 代码
private OnEmotionClickListener onEmotionClickListener;
// 定义接口
public interface OnEmotionClickListener {
void onEmotionClick(EmotionDeatils emotion);
}
// 转换后的 Java 代码
public void setOnEmotionClickListener(OnEmotionClickListener listener) {
this.onEmotionClickListener = listener;
}
public EmotionAdapter() {
super(R.layout.item_emotion);
}
@Override
protected void convert(BaseViewHolder helper, EmotionDeatils item) {
ImageUtils.loadHeadCC(item.getImage(), helper.getView(R.id.iv_emotion));
helper.setText(R.id.tv_emotion_name, item.getName());
// 设置点击事件
helper.itemView.setOnClickListener(v -> {
if (onEmotionClickListener != null) {
onEmotionClickListener.onEmotionClick(item);
}
});
}
}

View File

@@ -0,0 +1,131 @@
package com.xscm.modulemain.adapter;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.adapter.OneImageYuanJiaoAdapter;
import com.xscm.moduleutil.bean.ExpandColumnBean;
import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.utils.MeHeadView;
import com.xscm.moduleutil.utils.SpUtil;
import com.xscm.moduleutil.widget.MyGridView;
import com.xscm.moduleutil.widget.img.FullScreenUtil;
import java.util.List;
public class ExpandColumnAdapter extends BaseQuickAdapter<ExpandColumnBean, BaseViewHolder> {
public ExpandColumnAdapter() {
super(R.layout.item_expand_column);
}
public interface OnItemClickListener {
void onDianzanClick(ExpandColumnBean item);
void onHeadImageClick(ExpandColumnBean item);
void onZsClick(ExpandColumnBean item);
void onDiandianClick(ExpandColumnBean item);
void onPinglunClick(ExpandColumnBean item);
void onRelaClick(ExpandColumnBean item);
void onGnsClick(ExpandColumnBean item);
}
private OnItemClickListener mListener;
public void setOnItemClickListener(OnItemClickListener listener) {
this.mListener = listener;
}
@Override
protected void convert(BaseViewHolder helper, ExpandColumnBean item) {
helper.addOnClickListener(R.id.dy_head_image);
//先让单图,多图,音频的布局显示
helper.getView(R.id.dy_image_recyc).setVisibility(View.VISIBLE);
helper.setText(R.id.tv_agree,(item.getAgree()!=null?item.getAgree():"0")+"");
//昵称
helper.setText(R.id.dy_name_text, item.getNickname());
helper.setText(R.id.tv_address, item.getLoginip());
if (item.getUser_id().equals(SpUtil.getUserId()+"")){
helper.setVisible(R.id.gensui, false);
}else {
helper.setVisible(R.id.gensui, true);
}
if (item.getRoom_id() != 0) {
helper.getView(R.id.gensui).setBackgroundResource(com.xscm.moduleutil.R.mipmap.gsui);
} else {
helper.getView(R.id.gensui).setBackgroundResource(com.xscm.moduleutil.R.mipmap.six);
}
helper.getView(com.xscm.moduleutil.R.id.dy_head_image).setOnClickListener(v -> {
if (mListener != null) mListener.onHeadImageClick(item);
});
helper.getView(R.id.gensui).setOnClickListener(v -> {
if (mListener != null) mListener.onGnsClick(item);
});
//头像
// ImageUtils.loadHeadCC(item.getAvatar(), (ImageView) helper.getView(R.id.dy_head_image));
MeHeadView headView = helper.getView(R.id.dy_head_image);
headView.setData(item.getAvatar(), "", item.getSex());
if (item.getHome_bgimages() != null && !item.getHome_bgimages().isEmpty()) {
// String[] arrIv = item.getHome_bgimages().toArray(new String[item.getHome_bgimages().size()]);
String[] arrIv = item.getHome_bgimages().split(",");
int length = arrIv.length;
OneImageYuanJiaoAdapter oneImageYuanJiaoAdapter = new OneImageYuanJiaoAdapter(mContext);
MyGridView recyclerView = helper.getView(R.id.dy_image_recyc);
recyclerView.setNumColumns(3);
recyclerView.setAdapter(oneImageYuanJiaoAdapter);
oneImageYuanJiaoAdapter.getList_adapter().clear();
for (int j = 0; j < arrIv.length; j++) {
oneImageYuanJiaoAdapter.getList_adapter().add(arrIv[j]);
}
oneImageYuanJiaoAdapter.notifyDataSetChanged();
recyclerView.setOnItemClickListener((parent, view, position, id) -> {
FullScreenUtil.showFullScreenDialog(mContext, position, oneImageYuanJiaoAdapter.getList_adapter());
});
}else {
helper.getView(R.id.dy_image_recyc).setVisibility(View.GONE);
}
LinearLayout llContainer = helper.getView(R.id.ll_image_container);
llContainer.removeAllViews(); // 清空旧的 ImageView
List<String> images = item.getIcon(); // 获取图片列表
for (String url : images) {
if (url.contains("http")) {
ImageView imageView = new ImageView(mContext);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
mContext.getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57),
mContext.getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
);
params.setMargins(0, 0, mContext.getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView.setLayoutParams(params);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
// 使用 Glide 加载图片
ImageUtils.loadHeadCC(url, imageView);
llContainer.addView(imageView);
}
}
}
}

View File

@@ -0,0 +1,39 @@
package com.xscm.modulemain.adapter;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.Lifecycle;
import androidx.viewpager2.adapter.FragmentStateAdapter;
import java.util.List;
public class FragmentAdapter extends FragmentStateAdapter {
private static final String TAG = FragmentAdapter.class.getSimpleName();
private List<Fragment> fragmentList;
public FragmentAdapter(@NonNull FragmentActivity fragmentActivity) {
super(fragmentActivity);
}
public FragmentAdapter(@NonNull Fragment fragment) {
super(fragment);
}
public FragmentAdapter(@NonNull FragmentManager fragmentManager, @NonNull Lifecycle lifecycle) {
super(fragmentManager, lifecycle);
}
public void setFragmentList(List<Fragment> fragmentList) {
this.fragmentList = fragmentList;
}
@NonNull
@Override
public Fragment createFragment(int position) {
if (fragmentList == null || fragmentList.size() <= position) {
return new Fragment();
}
return fragmentList.get(position);
}
@Override
public int getItemCount() {
return fragmentList == null ? 0 : fragmentList.size();
}
}

View File

@@ -0,0 +1,98 @@
package com.xscm.modulemain.adapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.GiftBoxRecordBean;
import java.util.List;
public class GiftBoxAdapter extends RecyclerView.Adapter<GiftBoxAdapter.GiftBoxViewHolder> {
private static final int TYPE_HEADER = 0;
private static final int TYPE_ITEM = 1;
private List<GiftBoxRecordBean> giftBoxList;
public GiftBoxAdapter(List<GiftBoxRecordBean> giftBoxList) {
this.giftBoxList = giftBoxList;
}
@NonNull
@Override
public GiftBoxViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view;
if (viewType == TYPE_HEADER) {
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_gift_box, parent, false);
// 设置标题可见
view.findViewById(R.id.tv_label_time).setVisibility(View.VISIBLE);
view.findViewById(R.id.tv_label_gift_name).setVisibility(View.VISIBLE);
view.findViewById(R.id.tv_label_obtain).setVisibility(View.VISIBLE);
// 隐藏数据项
view.findViewById(R.id.tv_time).setVisibility(View.GONE);
view.findViewById(R.id.tv_gift_name).setVisibility(View.GONE);
view.findViewById(R.id.tv_obtain).setVisibility(View.GONE);
} else {
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_gift_box, parent, false);
// 设置数据项可见
view.findViewById(R.id.tv_time).setVisibility(View.VISIBLE);
view.findViewById(R.id.tv_gift_name).setVisibility(View.VISIBLE);
view.findViewById(R.id.tv_obtain).setVisibility(View.VISIBLE);
// 隐藏标题项
view.findViewById(R.id.tv_label_time).setVisibility(View.GONE);
view.findViewById(R.id.tv_label_gift_name).setVisibility(View.GONE);
view.findViewById(R.id.tv_label_obtain).setVisibility(View.GONE);
}
return new GiftBoxViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull GiftBoxViewHolder holder, int position) {
if (position == 0) {
// 设置标题文本
holder.tvLabelTime.setText("时间");
holder.tvLabelGiftName.setText("礼盒名称");
holder.tvLabelObtain.setText("获取");
} else {
GiftBoxRecordBean giftBox = giftBoxList.get(position - 1);
holder.tvTime.setText(giftBox.getCreatetime());
holder.tvGiftName.setText(giftBox.getGift_bag_name());
holder.tvObtain.setText(giftBox.getGift_name());
}
}
@Override
public int getItemCount() {
return giftBoxList.size() + 1; // 加上标题项
}
@Override
public int getItemViewType(int position) {
return position == 0 ? TYPE_HEADER : TYPE_ITEM;
}
static class GiftBoxViewHolder extends RecyclerView.ViewHolder {
TextView tvLabelTime;
TextView tvLabelGiftName;
TextView tvLabelObtain;
TextView tvTime;
TextView tvGiftName;
TextView tvObtain;
GiftBoxViewHolder(View view) {
super(view);
tvLabelTime = view.findViewById(R.id.tv_label_time);
tvLabelGiftName = view.findViewById(R.id.tv_label_gift_name);
tvLabelObtain = view.findViewById(R.id.tv_label_obtain);
tvTime = view.findViewById(R.id.tv_time);
tvGiftName = view.findViewById(R.id.tv_gift_name);
tvObtain = view.findViewById(R.id.tv_obtain);
}
}
}

View File

@@ -0,0 +1,209 @@
package com.xscm.modulemain.adapter;
import android.graphics.Color;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.RewardUserBean;
import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.utils.SpUtil;
import com.xscm.moduleutil.widget.BaseWheatView;
import java.util.ArrayList;
import java.util.List;
/**
* 项目名称 qipao-android
* 包名com.qpyy.room.adapter
* 创建人 黄强
* 创建时间 2020/8/6 14:48
* 描述 describe
*/
public class GiftUserAdapter extends BaseQuickAdapter<RewardUserBean, BaseViewHolder> {
private int ownerModel = 0;
public GiftUserAdapter() {
super(R.layout.room_rv_item_gift_wheat);
}
@Override
protected void convert(BaseViewHolder helper, RewardUserBean item) {
ImageUtils.loadHeadCC(item.getAvatar(), helper.getView(R.id.riv_gift_wheat_head_pic));
ImageView rivPit = helper.getView(R.id.riv_pit);
TextView tvPit = helper.getView(R.id.tv_pit);
rivPit.setVisibility(item.isSelect() ? View.VISIBLE : View.INVISIBLE);
if (TextUtils.isEmpty(item.getPit_number()) || "0".equals(item.getPit_number())) {
helper.setVisible(R.id.tv_pit, false);
} else {
helper.setVisible(R.id.tv_pit, true);
int pitNumber = Integer.parseInt(item.getPit_number());
if (pitNumber > 10) {
helper.setText(R.id.tv_pit, item.getNickname());
} else {
helper.setText(R.id.tv_pit, String.format("%s号麦", item.getPit_number()));
}
if (item.getPit_number().equals("10")) {
helper.setText(R.id.tv_pit, "嘉宾");
}
if (BaseWheatView.WHEAT_HOST.equals(item.getPit_number())) {
if (2 == ownerModel || 0 == ownerModel) {
helper.setText(R.id.tv_pit, "主持人");
} else {
helper.setText(R.id.tv_pit, "房主");
}
}
}
if (item.isSelect()) {
helper.getView(R.id.tv_pit).setBackgroundResource(com.xscm.moduleutil.R.mipmap.gift_show);
tvPit.setTextColor(Color.parseColor("#ffffff"));
} else {
helper.getView(R.id.tv_pit).setBackgroundResource(com.xscm.moduleutil.R.mipmap.gift_show_b);
tvPit.setTextColor(Color.parseColor("#ff333333"));
}
}
public boolean isAll() {
int count = 0;
List<RewardUserBean> data = getData();
for (RewardUserBean item : data) {
if (item.isSelect()) {
count++;
}
}
return count > 0 && count == data.size();
}
public void allElection(boolean b) {
List<RewardUserBean> data = getData();
for (RewardUserBean item : data) {
item.setSelect(b);
}
notifyDataSetChanged();
}
public int getSelectCount() {
int count = 0;
List<RewardUserBean> data = getData();
for (RewardUserBean item : data) {
if (!item.getUser_id().equals(SpUtil.getUserId() + "")) {
if (item.isSelect()) {
count++;
}
}
}
return count;
}
///获取当前选中的人数
public int getUserIdCount(){
int count = 0;
List<RewardUserBean> data = getData();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < data.size(); i++) {
if (!data.get(i).getUser_id().equals(SpUtil.getUserId() + "")) {
if (data.get(i).isSelect()) {
count++;
}
}
}
return count;
}
public List<RewardUserBean> getSelectRoomPitUserModel() {
List<RewardUserBean> selects = getData();
List<RewardUserBean> data = getData();
for (RewardUserBean item : data) {
if (item.isSelect()) {
selects.add(item);
}
}
return selects;
}
public String getUserIdToString() {
List<RewardUserBean> data = getData();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < data.size(); i++) {
if (!data.get(i).getUser_id().equals(SpUtil.getUserId() + "")) {
if (data.get(i).isSelect()) {
if (sb.length() > 0) {//该步即不会第一位有逗号,也防止最后一位拼接逗号!
sb.append(",");
}
sb.append(data.get(i).getUser_id());
}
}
}
return sb.toString();
}
public String getUserPitToString() {
List<RewardUserBean> data = getData();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < data.size(); i++) {
if (data.get(i).isSelect()) {
if (sb.length() > 0) {//该步即不会第一位有逗号,也防止最后一位拼接逗号!
sb.append(",");
}
if (data != null && data.get(i) != null && data.get(i).getPit_number() != null) {
sb.append(data.get(i).getPit_number());
} else {
sb.append("");
}
}
}
return sb.toString();
}
public List<RewardUserBean> getGiftUser() {
List<RewardUserBean> data = getData();
List<RewardUserBean> giftUserList = new ArrayList<>();
for (RewardUserBean item : data) {
if (item.isSelect()) {
giftUserList.add(item);
}
}
return giftUserList;
}
/**
* 清除所有选中
*/
public List<String> clearAllSelected() {
List<String> ids = new ArrayList<>();
List<RewardUserBean> data = getData();
for (RewardUserBean item : data) {
if (item.isSelect()) {
ids.add(item.getUser_id());
}
item.setSelect(false);
}
notifyDataSetChanged();
return ids;
}
public void setOwnerModel(int ownerModel) {
this.ownerModel = ownerModel;
notifyDataSetChanged();
}
public List<String> getAllSelectedIds() {
List<String> ids = new ArrayList<>();
List<RewardUserBean> data = getData();
for (RewardUserBean item : data) {
if (item.isSelect()) {
ids.add(item.getUser_id());
}
}
return ids;
}
}

View File

@@ -0,0 +1,89 @@
package com.xscm.modulemain.adapter;
import static android.view.View.GONE;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.TopRoom;
import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.utils.logger.Logger;
import java.util.List;
public class HotAdapter extends BaseMultiItemQuickAdapter<TopRoom, BaseViewHolder> {
public HotAdapter(List<TopRoom> data) {
super(data);
// addItemType(1, R.layout.index_rv_item_room_hot1);
addItemType(1, R.layout.index_rv_item_room_hot0);
}
// 定义点击事件监听器接口
public interface OnRoomClickListener {
void onRoomClick(TopRoom room, int position);
}
// 声明监听器实例
private OnRoomClickListener mOnRoomClickListener;
@Override
protected void convert(BaseViewHolder helper, TopRoom item) {
ImageUtils.loadHeadCC(item.getRoom_cover(), helper.getView(R.id.iv_follow_bg));
TextView tv_name = helper.getView(R.id.tv_name);
tv_name.setText(item.getRoom_name());
tv_name.setSelected(true);
ImageView iv = helper.getView(R.id.iv_play);
if (item.getUser_list()!=null && item.getUser_list().size() > 0) {
iv.setVisibility(View.VISIBLE);
}else {
iv.setVisibility(GONE);
}
helper.setText(R.id.tv_num, formatHotValue(Integer.parseInt(item.getHot_value())));
ImageUtils.loadHeadCC(item.getLabel_icon(), helper.getView(R.id.iv_type));
helper.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// ARouter.getInstance().build(ARouteConstants.LIVE_ROOM).withString("form","首页热门列表").withString("roomId", item.getId()).navigation();
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form", "首页热门列表").withString("roomId", item.getRoom_id()).navigation();
// 如果外部设置了监听器,则触发外部监听器
if (mOnRoomClickListener != null) {
mOnRoomClickListener.onRoomClick(item, helper.getAdapterPosition());
}
}
});
}
private String formatHotValue(int hotValue) {
if (hotValue > 10000) {
return String.format("%.1fw", hotValue / 10000.0);
} else {
return String.valueOf(hotValue);
}
}
// 提供设置监听器的方法
public void setOnRoomClickListener(OnRoomClickListener listener) {
this.mOnRoomClickListener = listener;
}
@Override
public void onViewRecycled(@NonNull BaseViewHolder holder) {
Logger.e("onViewRecycled", "onViewRecycled");
// ImageView imageView = holder.getView(R.id.riv);
// if (imageView != null) {
// imageView.setImageDrawable(null);
// Glide.with(imageView.getContext()).clear(imageView);
// }
super.onViewRecycled(holder);
}
}

View File

@@ -0,0 +1,98 @@
package com.xscm.modulemain.adapter;
import android.util.SparseBooleanArray;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.HeatedBean;
import java.util.ArrayList;
import java.util.List;
/**
*@author qx
*@data 2025/6/17
*@description: 这是发布动态选择话题的适配器,多选状态
*/
public class MultiSelectAdapter extends RecyclerView.Adapter<MultiSelectAdapter.ViewHolder> {
private List<HeatedBean> options;
private SparseBooleanArray selectedPositions = new SparseBooleanArray();
public MultiSelectAdapter(List<HeatedBean> options) {
this.options = options;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_multi_select, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
HeatedBean item = options.get(position);
boolean isSelected = selectedPositions.get(position, false);
holder.tvOption.setText(item.getTitle());
holder.checkbox.setSelected(isSelected);
holder.checkbox.setOnClickListener(v -> {
boolean newState = !isSelected;
selectedPositions.put(position, newState);
holder.checkbox.setSelected(newState);
notifyItemChanged(position); // 刷新当前项
});
// 点击整个 item 也可以触发选中/取消
holder.itemView.setOnClickListener(v -> {
boolean currentState = selectedPositions.get(position, false);
boolean newState = !currentState;
selectedPositions.put(position, newState);
holder.checkbox.setSelected(newState);
notifyItemChanged(position);
});
// holder.itemView.setOnClickListener(v -> {
// boolean isChecked = selectedPositions.get(position, false);
// if (isChecked) {
// selectedPositions.delete(position);
// } else {
// selectedPositions.put(position, true);
// }
// notifyItemChanged(position);
// });
}
@Override
public int getItemCount() {
return options.size();
}
public List<HeatedBean> getSelectedItems() {
List<HeatedBean> selected = new ArrayList<>();
for (int i = 0; i < options.size(); i++) {
if (selectedPositions.get(i)) {
selected.add(options.get(i));
}
}
return selected;
}
static class ViewHolder extends RecyclerView.ViewHolder {
View checkbox;
TextView tvOption;
public ViewHolder(@NonNull View itemView) {
super(itemView);
checkbox = itemView.findViewById(R.id.v_checkbox);
tvOption = itemView.findViewById(R.id.tv_option);
}
}
}

View File

@@ -0,0 +1,56 @@
package com.xscm.modulemain.adapter;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.AlbumBean;
import com.xscm.moduleutil.utils.ImageUtils;
public class MyAlbumListAdapter extends BaseQuickAdapter<AlbumBean, BaseViewHolder> {
private boolean b = false;
private int longClickPos = -1;
public MyAlbumListAdapter() {
super(R.layout.item_album_list);
}
@Override
protected void convert(BaseViewHolder helper, AlbumBean item) {
if (!"0".equals(item.getId())) {
ImageUtils.loadHeadCC(item.getImage(), helper.getView(R.id.riv_album));
helper.setVisible(R.id.tv_album_name, true);
helper.setVisible(R.id.tv_album_count, true);
if (!item.getPwd().isEmpty()){
ImageUtils.loadBlurredImageWithDefault(item.getImage(), helper.getView(R.id.riv_album), com.xscm.moduleutil.R.mipmap.default_avatar, 25);
helper.setVisible(R.id.iv_album_suo,true);
}
helper.setText(R.id.tv_album_name, item.getName());
helper.setText(R.id.tv_album_count, item.getRead_num());
} else {
helper.setImageResource(R.id.riv_album, com.xscm.moduleutil.R.mipmap.create_album);
helper.setVisible(R.id.tv_album_name, false);
helper.setVisible(R.id.tv_album_count, false);
helper.setVisible(R.id.iv_album_suo,false);
}
helper.setVisible(R.id.riv_album, true);
helper.addOnClickListener(R.id.riv_album);
// helper.addOnLongClickListener(R.id.riv_album);
}
public void setDelete(boolean b) {
this.b = b;
notifyDataSetChanged();
}
public void setLongClickPos(int pos) {
this.longClickPos = pos;
notifyDataSetChanged();
}
public boolean getDelete() {
return b;
}
}

View File

@@ -0,0 +1,496 @@
package com.xscm.modulemain.adapter;
import android.annotation.SuppressLint;
import android.content.Context;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.TextUtils;
import android.text.style.ForegroundColorSpan;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.RecyclerView;
import com.alibaba.android.arouter.launcher.ARouter;
import com.xscm.modulemain.R;
import com.xscm.modulemain.activity.room.activity.RoomActivity;
import com.xscm.modulemain.activity.user.activity.MyRoomActivity;
import com.makeramen.roundedimageview.RoundedImageView;
import com.xscm.modulemain.manager.RoomManager;
import com.xscm.moduleutil.RoomAutionTimeBean;
import com.xscm.moduleutil.bean.MyCpRoom;
import com.xscm.moduleutil.bean.MyFootResp;
import com.xscm.moduleutil.bean.MyRoomBean;
import com.xscm.moduleutil.bean.RoomData;
import com.xscm.moduleutil.bean.RoomRelationBean;
import com.xscm.moduleutil.bean.RoonGiftModel;
import com.xscm.moduleutil.bean.ViewItem;
import com.xscm.moduleutil.color.ThemeableDrawableUtils;
import com.xscm.moduleutil.dialog.ConfirmDialog;
import com.xscm.moduleutil.utils.ARouteConstants;
import com.xscm.moduleutil.utils.ColorManager;
import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.widget.GifAvatarOvalView;
import java.util.ArrayList;
import java.util.List;
public class MyCreateAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private List<ViewItem> viewItems = new ArrayList<>();
private int selectedRelationPosition = -1;
private int selectedTimePosition = -1;
private int selectedGiftPosition = -1;
private MyRoomActivity myRoomActivity;
public void setMyRoomActivity(MyRoomActivity myRoomActivity) {
this.myRoomActivity = myRoomActivity;
}
public void submitList(List<ViewItem> items) {
if (items == null || items.isEmpty()) {
viewItems.clear();
notifyDataSetChanged();
return;
}
List<ViewItem> filteredList = new ArrayList<>();
for (ViewItem item : items) {
int type = item.getType();
Object data = item.getData();
// 判断是否为空数据
boolean isValid = true;
switch (type) {
case ViewItem.TYPE_TEXT:
// 文本类型直接展示(字符串不会为 null
break;
case ViewItem.TYPE_RELATION:
isValid = data instanceof MyRoomBean && ((MyRoomBean) data).getRoom_name() != null; // 假设你有一个 isValid() 方法判断是否为空
break;
case ViewItem.TYPE_GIFT:
isValid = data instanceof MyCpRoom && !TextUtils.isEmpty(((MyCpRoom) data).getRoom_name()); // 示例判断字段非空
break;
case ViewItem.TYPE_IMAGE_SELECTION:
isValid = data instanceof MyFootResp && !TextUtils.isEmpty(((MyFootResp) data).getRoom_name());
break;
default:
isValid = false; // 默认不展示未知类型
break;
}
if (isValid) {
filteredList.add(item);
}
}
viewItems.clear();
viewItems.addAll(filteredList);
notifyDataSetChanged();
}
@Override
public int getItemViewType(int position) {
return viewItems.get(position).getType();
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
switch (viewType) {
case ViewItem.TYPE_TEXT:
return new TextViewHolder(inflater.inflate(R.layout.room_li_bu, parent, false));
case ViewItem.TYPE_RELATION:
return new RelationViewHolder(inflater.inflate(R.layout.room_fragment_my_room_list, parent, false));
case ViewItem.TYPE_GIFT:
return new RelationViewTimHolder(myRoomActivity,inflater.inflate(R.layout.room_fragment_my_room_cp_list, parent, false));
case ViewItem.TYPE_IMAGE_SELECTION:
return new GiftViewHolder(myRoomActivity,inflater.inflate(R.layout.room_index_item_chatroom_my_foot, parent, false));
default:
throw new IllegalArgumentException("Unknown view type");
}
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, @SuppressLint("RecyclerView") int position) {
ViewItem item = viewItems.get(position);
switch (item.getType()) {
case ViewItem.TYPE_TEXT:
RoomData roomData = (RoomData) item.getData();
((TextViewHolder) holder).bind((roomData));
break;
case ViewItem.TYPE_RELATION:
MyRoomBean relationBean = (MyRoomBean) item.getData();
((RelationViewHolder) holder).bind(relationBean);
break;
case ViewItem.TYPE_IMAGE_SELECTION:
MyFootResp myFootResp = (MyFootResp) item.getData();
((GiftViewHolder) holder).bind(myFootResp);
break;
case ViewItem.TYPE_GIFT:
MyCpRoom roomAutionTimeBean = (MyCpRoom) item.getData();
((RelationViewTimHolder) holder).bind(roomAutionTimeBean);
break;
}
}
public interface OnItemSelectedListener {
void onItemSelected(int viewType, int position);
}
private OnItemSelectedListener listener;
public void setOnItemSelectedListener(OnItemSelectedListener listener) {
this.listener = listener;
}
public RoomRelationBean getSelectedRelation() {
if (selectedRelationPosition != -1) {
ViewItem item = viewItems.get(selectedRelationPosition);
if (item.getData() instanceof RoomRelationBean) {
return (RoomRelationBean) item.getData();
}
}
return null;
}
public RoomAutionTimeBean getSelectedTime() {
if (selectedTimePosition != -1) {
ViewItem item = viewItems.get(selectedTimePosition);
if (item.getData() instanceof RoomAutionTimeBean) {
return (RoomAutionTimeBean) item.getData();
}
}
return null;
}
public RoonGiftModel getSelectedGift() {
if (selectedGiftPosition != -1) {
ViewItem item = viewItems.get(selectedGiftPosition);
if (item.getData() instanceof RoonGiftModel) {
return (RoonGiftModel) item.getData();
}
}
return null;
}
// 定义接口
public interface OnImageClickListener {
void onImageClick(View view, RoomData roomData);
}
// 添加接口类型的变量
private static OnImageClickListener onImageClickListener;
// 提供一个方法来设置接口变量
public void setOnImageClickListener(OnImageClickListener listener) {
this.onImageClickListener = listener;
}
@Override
public int getItemCount() {
return viewItems.size();
}
static class TextViewHolder extends RecyclerView.ViewHolder {
TextView textView;
ImageView imageView1, imageView2;
TextViewHolder(View itemView) {
super(itemView);
textView = itemView.findViewById(R.id.tv_title);
imageView1 = itemView.findViewById(R.id.iv_footprint);
imageView2 = itemView.findViewById(R.id.iv_delete_foot);
}
void bind(RoomData roomData) {
textView.setText(roomData.getTitle());
if (roomData.getTitleType() == 0) {
imageView2.setVisibility(View.INVISIBLE);
} else {
imageView2.setVisibility(View.VISIBLE);
imageView2.setImageResource(roomData.getTitleType());
}
imageView1.setImageResource(roomData.getTitleIcon());
imageView2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (onImageClickListener != null) {
onImageClickListener.onImageClick(view, roomData);
}
}
});
}
}
class RelationViewHolder extends RecyclerView.ViewHolder {
RoundedImageView riv;
ImageView iv_play, im_sh;
TextView tv_name;
TextView tv_sy;
TextView tv_user_id, tv_gz, tv_zx, tv_fw, rl_mx, tv_room_bt;
ConstraintLayout cl_my_room_list;
RelationViewHolder(View itemView) {
super(itemView);
riv = itemView.findViewById(R.id.riv);
iv_play = itemView.findViewById(R.id.iv_play);
tv_name = itemView.findViewById(R.id.tv_name);
tv_sy = itemView.findViewById(R.id.tv_sy);
tv_user_id = itemView.findViewById(R.id.tv_user_id);
tv_gz = itemView.findViewById(R.id.tv_gz);
tv_zx = itemView.findViewById(R.id.tv_zx);
tv_fw = itemView.findViewById(R.id.tv_fw);
rl_mx = itemView.findViewById(R.id.rl_mx);
tv_room_bt = itemView.findViewById(R.id.tv_room_bt);
im_sh = itemView.findViewById(R.id.im_sh);
cl_my_room_list = itemView.findViewById(R.id.cl_my_room_list);
}
void bind(MyRoomBean item) {
ImageUtils.loadImageView(item.getRoom_cover(), riv);
if (item.getLabel_icon() != null) {
ImageUtils.loadImageView(item.getLabel_icon(), iv_play);
}
tv_name.setText(item.getRoom_name());
tv_sy.setText(item.getToday_profit() + "");
tv_user_id.setText("ID: " + item.getRoom_number());
String concernText = "关注:" + item.getFollow_num();
SpannableString spannableString = new SpannableString(concernText);
// 设置关注数字部分的颜色为黑色
spannableString.setSpan(new ForegroundColorSpan(ContextCompat.getColor(itemView.getContext(), R.color.black)), 2, concernText.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv_gz.setText(spannableString);
String concernText1 = "在线:" + item.getOnline_num();
SpannableString spannableString1 = new SpannableString(concernText1);
// 设置关注数字部分的颜色为黑色
spannableString1.setSpan(new ForegroundColorSpan(ContextCompat.getColor(itemView.getContext(), R.color.black)), 2, concernText1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv_zx.setText(spannableString1);
String concernText2 = "访问:" + item.getVisit_num();
SpannableString spannableString2 = new SpannableString(concernText2);
// 设置关注数字部分的颜色为黑色
spannableString2.setSpan(new ForegroundColorSpan(ContextCompat.getColor(itemView.getContext(), R.color.black)), 2, concernText2.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv_fw.setText(spannableString2);
rl_mx.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO: 跳转到房间详情页面
if (item.getApply_status().equals("1")) {
queren(itemView.getContext());
return;
}
if (myRoomActivity != null)
myRoomActivity.isShowLoading(true);
// startActivity(new Intent(getContext(), RoomDetailsActivity.class));
ARouter.getInstance().build(ARouteConstants.MY_ROOM_DETAILS).withString("roomId", item.getRoom_id() + "").navigation();
}
});
cl_my_room_list.setOnClickListener(new View.OnClickListener() {//跳转房间
@Override
public void onClick(View v) {
if (item.getApply_status().equals("1")) {
queren(itemView.getContext());
return;
}
if (myRoomActivity != null)
myRoomActivity.isShowLoading(true);
RoomManager.getInstance().fetchRoomDataAndEnter(itemView.getContext(), item.getRoom_id() + "", "",null);
// TODO: 跳转到房间
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("from", "我的界面").withString("roomId", item.getRoom_id() + "").navigation();
}
});
tv_room_bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {//房间补贴
if (item.getApply_status().equals("1")) {
queren(itemView.getContext());
return;
}
RoomManager.getInstance().fetchRoomDataAndEnter(itemView.getContext(), item.getRoom_id() + "", "",null);
// ARouter.getInstance().build(ARouteConstants.ROOM_ALLOWANCE).withString("from", "我的界面").withString("roomId", item.getRoom_id() + "").navigation();
}
});
if (item.getApply_status().equals("2")) {
im_sh.setVisibility(View.GONE);
} else if (item.getApply_status().equals("1")) {
im_sh.setVisibility(View.VISIBLE);
}
ThemeableDrawableUtils.setThemeableRoundedBackground(rl_mx, itemView.getContext().getColor(com.xscm.moduleutil.R.color.color6c49e25), 53);
rl_mx.setTextColor(ColorManager.getInstance().getPrimaryColorInt());
ThemeableDrawableUtils.setThemeableRoundedBackground(tv_room_bt, itemView.getContext().getColor(com.xscm.moduleutil.R.color.colorCDEB52E), 53);
tv_room_bt.setTextColor(ContextCompat.getColor(itemView.getContext(), com.xscm.moduleutil.R.color.colorC58600));
}
}
private static void queren(Context context) {
// 创建并显示确认对话框
new ConfirmDialog(context,
"温馨提示",
"您创建的房间正在审核中,请耐心等待或联系人工客服解决处理",
"知道了",
"",
v -> {
// 点击“确认”按钮时执行删除操作
},
v -> {
// 点击“取消”按钮时什么都不做
}, false, 0).show();
}
static class RelationViewTimHolder extends RecyclerView.ViewHolder {
ConstraintLayout cl_my_room_list;
GifAvatarOvalView user_avatar1, user_avatar2;
TextView tv_gx, tv_name, tv_sy, tv_user_id, room_head_top2, room_head_top3, rl_mx, tv_time;
ImageView iv_play;
private MyRoomActivity myRoomActivity;
RelationViewTimHolder(MyRoomActivity myRoomActivity ,View itemView) {
super(itemView);
this.myRoomActivity = myRoomActivity;
cl_my_room_list = itemView.findViewById(R.id.cl_my_room_list);
user_avatar1 = itemView.findViewById(R.id.user_avatar1);
user_avatar2 = itemView.findViewById(R.id.user_avatar2);
tv_gx = itemView.findViewById(R.id.tv_gx);
iv_play = itemView.findViewById(R.id.iv_play);
tv_name = itemView.findViewById(R.id.tv_name);
tv_sy = itemView.findViewById(R.id.tv_sy);
tv_user_id = itemView.findViewById(R.id.tv_user_id);
room_head_top2 = itemView.findViewById(R.id.room_head_top2);
room_head_top3 = itemView.findViewById(R.id.room_head_top3);
rl_mx = itemView.findViewById(R.id.rl_mx);
tv_time = itemView.findViewById(R.id.tv_time);
}
void bind(MyCpRoom item) {
ImageUtils.loadImageView(item.getUser1_avatar(), user_avatar1);
ImageUtils.loadImageView(item.getUser2_avatar(), user_avatar2);
tv_gx.setText(item.getRelation());
tv_name.setText(item.getRoom_name());
tv_sy.setText(item.getEarnings() + "");
tv_user_id.setText("ID: " + item.getRoom_number());
// room_head_top2.setText();
tv_time.setText(formatTimestampToDaysHours(Long.parseLong(item.getEnd_time())));
rl_mx.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (myRoomActivity != null){
myRoomActivity.isShowLoading(true);
}
// TODO: 跳转到房间详情页面
RoomManager.getInstance().fetchRoomDataAndEnter(itemView.getContext(), item.getRoom_id() + "", "",null);
// startActivity(new Intent(getContext(), RoomDetailsActivity.class));
// ARouter.getInstance().build(ARouteConstants.MY_ROOM_DETAILS).withString("roomId", item.getRoom_id() + "").navigation();
}
});
cl_my_room_list.setOnClickListener(new View.OnClickListener() {//跳转房间
@Override
public void onClick(View v) {
if (myRoomActivity != null){
myRoomActivity.isShowLoading(true);
}
RoomManager.getInstance().fetchRoomDataAndEnter(itemView.getContext(), item.getRoom_id() + "", "",null);
// TODO: 跳转到房间
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("from", "我的界面").withString("roomId", item.getRoom_id() + "").navigation();
}
});
ThemeableDrawableUtils.setThemeableRoundedBackground(rl_mx, itemView.getContext().getColor(com.xscm.moduleutil.R.color.color6c49e25), 53);
rl_mx.setTextColor(ColorManager.getInstance().getPrimaryColorInt());
}
}
public static String formatTimestampToDaysHours(long timestamp) {
// 获取当前时间戳(秒)
long currentTimestamp = System.currentTimeMillis() / 1000;
// 计算时间差(秒)
long timeDifferenceSeconds = Math.abs(currentTimestamp - timestamp);
// 转换为天数和小时数
long days = timeDifferenceSeconds / (24 * 60 * 60);
long remainingSecondsAfterDays = timeDifferenceSeconds % (24 * 60 * 60);
long hours = remainingSecondsAfterDays / (60 * 60);
return days + "" + hours + "小时";
}
static class GiftViewHolder extends RecyclerView.ViewHolder {
RoundedImageView iv_follow_bg;
ImageView iv_type, iv_play;
TextView tv_name, tv_num;
ConstraintLayout rl_root;
private MyRoomActivity roomActivity;
GiftViewHolder(MyRoomActivity roomActivity, View itemView) {
super(itemView);
this.roomActivity = roomActivity;
iv_follow_bg = itemView.findViewById(R.id.iv_follow_bg);
iv_type = itemView.findViewById(R.id.iv_type);
tv_name = itemView.findViewById(R.id.tv_name);
iv_play = itemView.findViewById(R.id.iv_play);
tv_num = itemView.findViewById(R.id.tv_num);
rl_root = itemView.findViewById(R.id.rl_root);
}
void bind(MyFootResp item) {
ImageUtils.loadHeadCC(item.getRoom_cover(), iv_follow_bg);
ImageUtils.loadHeadCC(item.getLabel_icon(), iv_type);
tv_name.setText(item.getRoom_name());
tv_num.setText(item.getHot_value());
rl_root.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (roomActivity != null){
roomActivity.isShowLoading(true);
}
RoomManager.getInstance().fetchRoomDataAndEnter(itemView.getContext(), item.getRoom_id() + "", "",null);
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("from", "我的界面").withString("roomId", item.getRoom_id() + "").navigation();
}
});
}
}
}

View File

@@ -0,0 +1,56 @@
package com.xscm.modulemain.adapter;
import android.widget.TextView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.RoomAutionTimeBean;
import java.util.ArrayList;
import java.util.List;
public class PkTimeAdapter extends BaseQuickAdapter<RoomAutionTimeBean, BaseViewHolder> {
private int selectedRelationPosition = -1;
private List<RoomAutionTimeBean> viewItems = new ArrayList<>();
public PkTimeAdapter() {
super(R.layout.item_relation);
}
@Override
protected void convert(BaseViewHolder helper, RoomAutionTimeBean item) {
TextView relationName = helper.getView(R.id.tv_name);
relationName.setText( item.getDays()+"分钟");
if (item.isSelected()) {
relationName.setBackground(helper.itemView.getResources().getDrawable(com.xscm.moduleutil.R.mipmap.pk_time_t));
relationName.setTextColor(helper.itemView.getResources().getColor(com.xscm.moduleutil.R.color.color_0DFFB9));
} else {
relationName.setBackground(helper.itemView.getResources().getDrawable(com.xscm.moduleutil.R.mipmap.pk_time_f));
relationName.setTextColor(helper.itemView.getResources().getColor(com.xscm.moduleutil.R.color.color_FF333333));
}
helper.itemView.setOnClickListener(v -> {
int currentPosition = helper.getLayoutPosition();
if (selectedRelationPosition == currentPosition) return; // 避免重复点击
if (selectedRelationPosition != -1) {
getData().get(selectedRelationPosition).setSelected(false);
notifyItemChanged(selectedRelationPosition);
}
item.setSelected(true);
selectedRelationPosition = currentPosition;
notifyItemChanged(currentPosition);
});
}
public RoomAutionTimeBean getSelectedTime() {
if (selectedRelationPosition != -1 && selectedRelationPosition < getData().size()) {
return getData().get(selectedRelationPosition);
}
return null;
}
}

View File

@@ -0,0 +1,598 @@
package com.xscm.modulemain.adapter;
import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.RelativeLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.alibaba.android.arouter.launcher.ARouter;
import com.blankj.utilcode.util.SpanUtils;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.modulemain.activity.room.contacts.PlaceholderContacts;
import com.xscm.modulemain.activity.room.presenter.PlaceholderPresenter;
import com.xscm.modulemain.databinding.FragmentRankingListBinding;
import com.xscm.moduleutil.base.BaseMvpFragment;
import com.xscm.moduleutil.bean.PlaceholderBean;
import com.xscm.moduleutil.utils.ARouteConstants;
import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.utils.StringUtil;
import com.xscm.moduleutil.widget.CommonEmptyView;
import com.xscm.moduleutil.widget.GifAvatarOvalView;
import java.util.List;
/**
* @author qx
* @data 2025/7/11
* @description: 榜单
*/
public class PlaceholderFragment extends BaseMvpFragment<PlaceholderPresenter,
FragmentRankingListBinding> implements PlaceholderContacts.View {
private int index;
private static final String ARG_SECTION_NUMBER = "section_number";
private TextView tvDay, tvWeek, tvMonth;
private String currentType = "日榜"; // 默认选中日榜
private BaseQuickAdapter<PlaceholderBean.ListsBean, BaseViewHolder> mAdapter;
public static PlaceholderFragment newInstance(int index) {
PlaceholderFragment fragment = new PlaceholderFragment();
Bundle bundle = new Bundle();
bundle.putInt(ARG_SECTION_NUMBER, index);
fragment.setArguments(bundle);
return fragment;
}
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
index = getArguments().getInt(ARG_SECTION_NUMBER);
}
@Override
protected PlaceholderPresenter bindPresenter() {
return new PlaceholderPresenter(this, getActivity());
}
@Override
public void onDestroyView() {
super.onDestroyView();
}
@Override
protected void initData() {
}
private void setVisdisplay(boolean isVisible) {
mBinding.includeTopBar.imUser1.setVisibility(isVisible ? View.VISIBLE : View.GONE);
mBinding.includeTopBar.tvXing1.setVisibility(isVisible ? View.VISIBLE : View.GONE);
mBinding.includeTopBar.tvName1.setVisibility(isVisible ? View.VISIBLE : View.GONE);
mBinding.includeTopBar.tvId1.setVisibility(isVisible ? View.VISIBLE : View.GONE);
mBinding.includeTopBar.imUser2.setVisibility(isVisible ? View.VISIBLE : View.GONE);
mBinding.includeTopBar.tvXing2.setVisibility(isVisible ? View.VISIBLE : View.GONE);
mBinding.includeTopBar.tvName2.setVisibility(isVisible ? View.VISIBLE : View.GONE);
mBinding.includeTopBar.tvId2.setVisibility(isVisible ? View.VISIBLE : View.GONE);
mBinding.includeTopBar.imUser3.setVisibility(isVisible ? View.VISIBLE : View.GONE);
mBinding.includeTopBar.tvXing3.setVisibility(isVisible ? View.VISIBLE : View.GONE);
mBinding.includeTopBar.tvName3.setVisibility(isVisible ? View.VISIBLE : View.GONE);
mBinding.includeTopBar.tvId3.setVisibility(isVisible ? View.VISIBLE : View.GONE);
mBinding.includeTopBar.ivOneCp1Head.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
mBinding.includeTopBar.ivOneCp2Head.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
mBinding.includeTopBar.imCp1.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
mBinding.includeTopBar.tvCpXing1.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
mBinding.includeTopBar.tvCpName1.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
mBinding.includeTopBar.tvCpName12.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
mBinding.includeTopBar.ivSecondCp1Head.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
mBinding.includeTopBar.ivSecondCp2Head.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
mBinding.includeTopBar.imCp2.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
mBinding.includeTopBar.tvCpXing2.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
mBinding.includeTopBar.tvCpName2.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
mBinding.includeTopBar.tvCpName22.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
mBinding.includeTopBar.ivThreeCp1Head.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
mBinding.includeTopBar.ivThreeCp2Head.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
mBinding.includeTopBar.imCp3.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
mBinding.includeTopBar.tvCpXing3.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
mBinding.includeTopBar.tvCpName3.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
mBinding.includeTopBar.tvCpName32.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
}
@Override
protected void initView() {
tvDay = mBinding.tvDay;
tvWeek = mBinding.tvWeek;
tvMonth = mBinding.tvMonth;
// 设置点击事件
tvDay.setOnClickListener(v -> switchTab("日榜"));
tvWeek.setOnClickListener(v -> switchTab("周榜"));
tvMonth.setOnClickListener(v -> switchTab("月榜"));
// 默认加载日榜数据
loadRankingData("日榜");
// ShadowLayout slMy = mBinding.includeTopBar.slMy;
// RelativeLayout r11 = mBinding.includeTopBar.r11;
// RelativeLayout r12 = mBinding.includeTopBar.r12;
// RelativeLayout r21 = mBinding.includeTopBar.r21;
// RelativeLayout r22 = mBinding.includeTopBar.r22;
// RelativeLayout r31 = mBinding.includeTopBar.r31;
// RelativeLayout r32 = mBinding.includeTopBar.r32;
RelativeLayout rlMy = mBinding.includeTopBar.rlMy;
RelativeLayout rlMyCp = mBinding.includeTopBar.rlMyCp;
RecyclerView recycleView = mBinding.includeTopBar.recycleView;
if (index == 0) {
// slMy.setShadowColor(Color.parseColor("#618F6FFF"));
// r11.setVisibility(View.VISIBLE);
// r12.setVisibility(View.GONE);
// r21.setVisibility(View.VISIBLE);
// r22.setVisibility(View.GONE);
// r31.setVisibility(View.VISIBLE);
// r32.setVisibility(View.GONE);
rlMy.setVisibility(View.VISIBLE);
rlMyCp.setVisibility(View.GONE);
setVisdisplay( true);
} else if (index == 1) {
// r11.setVisibility(View.VISIBLE);
// r12.setVisibility(View.GONE);
// r21.setVisibility(View.VISIBLE);
// r22.setVisibility(View.GONE);
// r31.setVisibility(View.VISIBLE);
// r32.setVisibility(View.GONE);
rlMy.setVisibility(View.VISIBLE);
rlMyCp.setVisibility(View.GONE);
setVisdisplay( true);
// slMy.setShadowColor(Color.parseColor("#70F7B500"));
} else if (index == 2) {
// r11.setVisibility(View.VISIBLE);
// r12.setVisibility(View.GONE);
// r21.setVisibility(View.VISIBLE);
// r22.setVisibility(View.GONE);
// r31.setVisibility(View.VISIBLE);
// r32.setVisibility(View.GONE);
rlMy.setVisibility(View.VISIBLE);
rlMyCp.setVisibility(View.GONE);
setVisdisplay( true);
// slMy.setShadowColor(Color.parseColor("#7AFE969D"));
}else if (index == 3){
// r11.setVisibility(View.GONE);
// r12.setVisibility(View.VISIBLE);
// r21.setVisibility(View.GONE);
// r22.setVisibility(View.VISIBLE);
// r31.setVisibility(View.GONE);
// r32.setVisibility(View.VISIBLE);
rlMy.setVisibility(View.GONE);
rlMyCp.setVisibility(View.VISIBLE);
setVisdisplay(false);
}
// else if (index == 3) {
// r11.setVisibility(View.VISIBLE);
// r12.setVisibility(View.GONE);
// r21.setVisibility(View.VISIBLE);
// r22.setVisibility(View.GONE);
// r31.setVisibility(View.VISIBLE);
// r32.setVisibility(View.GONE);
// rlMy.setVisibility(View.VISIBLE);
// rlMyCp.setVisibility(View.GONE);
// slMy.setShadowColor(Color.parseColor("#7AFE969D"));
// } else if (index == 4) {
// r11.setVisibility(View.GONE);
// r12.setVisibility(View.VISIBLE);
// r21.setVisibility(View.GONE);
// r22.setVisibility(View.VISIBLE);
// r31.setVisibility(View.GONE);
// r32.setVisibility(View.VISIBLE);
// rlMy.setVisibility(View.GONE);
// rlMyCp.setVisibility(View.VISIBLE);
// }
recycleView.setLayoutManager(new LinearLayoutManager(getActivity()));
mAdapter = new BaseQuickAdapter<PlaceholderBean.ListsBean, BaseViewHolder>(R.layout.index_rv_item_ranking_list) {
@Override
protected void convert(BaseViewHolder helper, PlaceholderBean.ListsBean item) {
helper.setText(R.id.tv_charm, StringUtil.toWan2(item.getTotal(),1));
ConstraintLayout rl = helper.getView(R.id.r_3_2);
if (index == 0) {
rl.setVisibility(View.GONE);
helper.getView(R.id.riv_avatar).setVisibility(View.VISIBLE);
helper.setText(R.id.tv_name, item.getRoom_name());
ImageUtils.loadHeadCC(item.getRoom_cover(), helper.getView(R.id.riv_avatar));
helper.setText(R.id.tv_no, String.valueOf(item.getRank()));
} else if (index == 3) {
rl.setVisibility(View.VISIBLE);
helper.getView(R.id.riv_avatar).setVisibility(View.GONE);
ImageUtils.loadHeadCC(item.getUser_avatar(), helper.getView(R.id.iv_three_cp1_head));
ImageUtils.loadHeadCC(item.getUser_avatar1(), helper.getView(R.id.iv_three_cp2_head));
// helper.setText(R.id.tv_charm, item.getNumber());
helper.setText(R.id.tv_name, item.getNickname());
helper.setVisible( R.id.tv_cp_name,true).setText(R.id.tv_cp_name, item.getNickname1());
helper.setText(R.id.tv_no, String.valueOf(item.getRank()));
// ((BeautifulNameView) helper.getView(R.id.bnv_rank_list)).setTextColor(!TextUtils.isEmpty(item.getId_color()) ? Color.parseColor(item.getId_color()) : getResources().getColor(R.color.color_FF333333));
// ((BeautifulNameView) helper.getView(R.id.bnv_rank_list)).setText(item.getNickname2());
} else if (index == 1 || index == 2) {
rl.setVisibility(View.GONE);
helper.getView(R.id.riv_avatar).setVisibility(View.VISIBLE);
helper.setText(R.id.tv_name, item.getNickname());
helper.setText(R.id.tv_no, String.valueOf(item.getRank()));
ImageUtils.loadHeadCC(item.getAvatar(), helper.getView(R.id.riv_avatar));
helper.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// if (type == RankingFragment.TYPE_WEALTH) {
// return;
// }
ARouter.getInstance().build(ARouteConstants.USER_HOME_PAGE).withString("userId", item.getUser_id()).navigation();
}
});
}
// else if (index == 3) {
// rl.setVisibility(View.GONE);
// helper.getView(R.id.riv_avatar).setVisibility(View.VISIBLE);
// helper.setText(R.id.tv_name, item.getGuild_name());
// ImageUtils.loadHeadCC(item.getCover(), helper.getView(R.id.riv_avatar));
// helper.setText(R.id.tv_no, String.valueOf(item.getRank()));
// }
}
};
recycleView.setAdapter(mAdapter);
mAdapter.bindToRecyclerView(recycleView);
CommonEmptyView commonEmptyView = new CommonEmptyView(getContext());
commonEmptyView.setEmptyText("暂无上榜");
mAdapter.setEmptyView(commonEmptyView);
// ThemeableDrawableUtils.setThemeableRoundedBackground(tvDay, ColorManager.getInstance().getPrimaryColorInt(), 79);
// tvDay.setTextColor(ColorManager.getInstance().getButtonColorInt());
switchTab("日榜");
}
private void switchTab(String type) {
if (currentType.equals(type)) return; // 避免重复点击
// 更新 UI 状态
updateTabState(type);
// 请求对应榜单数据
loadRankingData(type);
}
private void loadRankingData(String type) {
// 调用 Presenter 获取对应榜单的数据
if (type.equals("日榜")) {
MvpPre.wealthRanking(index + "", "1");
} else if (type.equals("周榜")) {
MvpPre.wealthRanking(index + "", "2");
} else if (type.equals("月榜")) {
MvpPre.wealthRanking(index + "", "3");
}
}
private void updateTabState(String selectedType) {
currentType = selectedType;
// if (selectedType.equals("日榜")) {
// ThemeableDrawableUtils.setThemeableRoundedBackground(tvDay, ColorManager.getInstance().getPrimaryColorInt(), 79);
// tvDay.setTextColor(ColorManager.getInstance().getButtonColorInt());
// } else {
// ThemeableDrawableUtils.setThemeableRoundedBackground(tvDay,com.xscm.moduleutil.R.color.color_0DFFB9, 79);
// tvDay.setTextColor(Color.parseColor("#FF333333"));
// }
// if (selectedType.equals("周榜")) {
// ThemeableDrawableUtils.setThemeableRoundedBackground(tvWeek, ColorManager.getInstance().getPrimaryColorInt(), 79);
// tvWeek.setTextColor(ColorManager.getInstance().getButtonColorInt());
// }else {
// ThemeableDrawableUtils.setThemeableRoundedBackground(tvWeek,com.xscm.moduleutil.R.color.color_0DFFB9, 79);
// tvWeek.setTextColor(Color.parseColor("#FF333333"));
// }
// if (selectedType.equals("月榜")) {
// ThemeableDrawableUtils.setThemeableRoundedBackground(tvMonth, ColorManager.getInstance().getPrimaryColorInt(), 79);
// tvMonth.setTextColor(ColorManager.getInstance().getButtonColorInt());
// }else {
// ThemeableDrawableUtils.setThemeableRoundedBackground(tvMonth,com.xscm.moduleutil.R.color.color_0DFFB9, 79);
// tvMonth.setTextColor(Color.parseColor("#FF333333"));
// }
int selectedColor = ContextCompat.getColor(getContext(), android.R.color.white);
int unselectedColor = ContextCompat.getColor(getContext(), com.xscm.moduleutil.R.color.white); // 确保这个颜色在资源文件中定义
tvDay.setBackgroundResource(selectedType.equals("日榜") ? com.xscm.moduleutil.R.mipmap.text_ranking_sele : com.xscm.moduleutil.R.mipmap.text_ranking_ud);
tvDay.setTextColor(selectedType.equals("日榜") ? selectedColor : unselectedColor);
tvWeek.setBackgroundResource(selectedType.equals("周榜") ? com.xscm.moduleutil.R.mipmap.text_ranking_sele: com.xscm.moduleutil.R.mipmap.text_ranking_ud);
tvWeek.setTextColor(selectedType.equals("周榜") ? selectedColor : unselectedColor);
tvMonth.setBackgroundResource(selectedType.equals("月榜") ? com.xscm.moduleutil.R.mipmap.text_ranking_sele : com.xscm.moduleutil.R.mipmap.text_ranking_ud);
tvMonth.setTextColor(selectedType.equals("月榜") ? selectedColor : unselectedColor);
}
@Override
protected int getLayoutId() {
return R.layout.fragment_ranking_list;
}
@Override
public void wealthRanking(PlaceholderBean.MyRanking data) {
if (data != null) {
if (index == 3) {
GifAvatarOvalView cp1Head = mBinding.includeTopBar.ivMyCp1Head;
GifAvatarOvalView cp2Head = mBinding.includeTopBar.ivMyCp2Head;
ImageUtils.loadHeadCC(data.getUser_avatar(), cp1Head);
ImageUtils.loadHeadCC(data.getUser_avatar1(), cp2Head);
TextView tv_my_name = mBinding.includeTopBar.tvMyName;
TextView tvid = mBinding.includeTopBar.tvMyId;
tv_my_name.setText(data.getNickname());
tvid.setText(data.getUser_code());
} else {
TextView tvName = mBinding.includeTopBar.tvName;
GifAvatarOvalView riv = mBinding.includeTopBar.riv;
if (index == 0) {
tvName.setText(data.getRoom_name());
ImageUtils.loadHeadCC(data.getRoom_cover(), riv);
}
// else if (index == 3) {
// tvName.setText(data.getGuild_name());
// ImageUtils.loadHeadCC(data.getCover(), riv);
// }
else {
tvName.setText(data.getNickname());
ImageUtils.loadHeadCC(data.getAvatar(), riv);
}
riv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// ARouter.getInstance().build(ARouteConstants.NEW_HOME_PAGE).withString("userId", myInfo.getUser_id()).navigation();
}
});
}
TextView tvCharm = mBinding.includeTopBar.tvCharm;
TextView tvRankState = mBinding.includeTopBar.tvRankState;
TextView tvRankNo = mBinding.includeTopBar.tvRankNo;
tvCharm.setText(StringUtil.toWan2(data.getTotal(),1));
if (data.getRank().equals("-1")) {
tvRankState.setText("暂未上榜");
tvRankNo.setText(new SpanUtils().append("距上榜差 ").append(data.getDiff() + "").setBold().setForegroundColor(Color.parseColor("#FFFF8ACC")).setFontSize(12, true).create());
} else {
if (data.getRank().equals("1")) {
tvRankState.setText("第1名");
tvRankNo.setText("继续加油哦~");
} else {
tvRankState.setText(String.format("第%s名", data.getRank()));
tvRankNo.setText(new SpanUtils().append("距上一名差 ").append(data.getDiff() + "").setBold().setForegroundColor(Color.parseColor("#FFFF8ACC")).setFontSize(12, true).create());
}
}
} else {
}
}
@Override
public void setNo1(PlaceholderBean.ListsBean data, String type) {
TextView tvUsername1 = mBinding.includeTopBar.tvName1;
// BeautifulNameView beautifulViewFirst = mBinding.includeTopBar.beautifulViewFirst;
TextView tvXing1 = mBinding.includeTopBar.tvXing1;
GifAvatarOvalView imUser1 = mBinding.includeTopBar.imUser1;
// ImageView imVip1 = mBinding.includeTopBar.ivVip1;
// ImageView imLevel1 = mBinding.includeTopBar.ivLevel1;
TextView tvId1 = mBinding.includeTopBar.tvId1;
GifAvatarOvalView ivOneCp1Hhead = mBinding.includeTopBar.ivOneCp1Head;
GifAvatarOvalView ivOneCp2Hhead = mBinding.includeTopBar.ivOneCp2Head;
TextView tv_cp_xing1=mBinding.includeTopBar.tvCpXing1;
TextView tv_cp_name1=mBinding.includeTopBar.tvCpName1;
TextView tv_cp_name2=mBinding.includeTopBar.tvCpName12;
if (data == null) {
// 设置默认值或清空内容
tvUsername1.setText("");
// beautifulViewFirst.setText("");
tvXing1.setText("");
imUser1.setImageResource(0); // 设置默认图片资源
// imVip1.setImageResource(0); // 设置默认图片资源
// imLevel1.setImageResource(0); // 设置默认图片资源
tvId1.setText("");
ivOneCp1Hhead.setImageResource(0); // 设置默认图片资源
ivOneCp2Hhead.setImageResource(0); // 设置默认图片资源
tv_cp_xing1.setText("");
tv_cp_name1.setText("");
tv_cp_name2.setText("");
return;
}
tvXing1.setText(StringUtil.toWan2(data.getTotal(),1));
tvXing1.setBackgroundResource(type.equals("3") ? com.xscm.moduleutil.R.mipmap.ranking_za_hr :com.xscm.moduleutil.R.mipmap.ranking_hr);
if (type.equals("0")) {
tvUsername1.setText(data.getRoom_name());
ImageUtils.loadHeadCC(data.getRoom_cover(), imUser1);
tvId1.setText(data.getRoom_number() != null ? "ID:" + data.getRoom_number() : "");
imUser1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// ARouter.getInstance().build(ARouteConstants.USER_HOME_PAGE).withString("userId", data.getUser_id()).navigation();
}
});
} else if (type.equals("1") || type.equals("2")) {
tvUsername1.setText(data.getNickname());
ImageUtils.loadHeadCC(data.getAvatar(), imUser1);
tvId1.setText(data.getUser_code() != null ? "ID:" + data.getUser_code() : "");
imUser1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ARouter.getInstance().build(ARouteConstants.USER_HOME_PAGE).withString("userId", data.getUser_id()).navigation();
}
});
}
// else if (type.equals("3")) {
// tvUsername1.setText(data.getGuild_name());
// ImageUtils.loadHeadCC(data.getCover(), imUser1);
// tvId1.setText(data.getGuild_special_id() != null ? "ID:" + data.getGuild_special_id() : "");
// }
else {
ImageUtils.loadHeadCC(data.getUser_avatar(), ivOneCp1Hhead);
ImageUtils.loadHeadCC(data.getUser_avatar1(), ivOneCp2Hhead);
tvUsername1.setText(data.getNickname());
tvId1.setText(data.getNickname1());
tv_cp_xing1.setText(StringUtil.toWan2(data.getTotal(),1));
tv_cp_name1.setText(data.getNickname());
tv_cp_name2.setText(data.getNickname1());
}
}
@Override
public void setNo2(PlaceholderBean.ListsBean data, String type) {
TextView tvUsername2 = mBinding.includeTopBar.tvName2;
// BeautifulNameView beautifulViewSecond = mBinding.includeTopBar.beautifulViewSecond;
TextView tvXing2 = mBinding.includeTopBar.tvXing2;
GifAvatarOvalView imUser2 = mBinding.includeTopBar.imUser2;
// ImageView imVip2 = mBinding.includeTopBar.ivVip2;
// ImageView imLevel2 = mBinding.includeTopBar.ivLevel2;
TextView tvId2 = mBinding.includeTopBar.tvId2;
GifAvatarOvalView ivOneCp1Hhead = mBinding.includeTopBar.ivSecondCp1Head;
GifAvatarOvalView ivOneCp2Hhead = mBinding.includeTopBar.ivSecondCp2Head;
TextView tv_cp_xing1=mBinding.includeTopBar.tvCpXing2;
TextView tv_cp_name1=mBinding.includeTopBar.tvCpName2;
TextView tv_cp_name2=mBinding.includeTopBar.tvCpName22;
if (data == null) {
tvUsername2.setText("");
// beautifulViewSecond.setText("");
tvXing2.setText("");
imUser2.setImageResource(0); // 设置默认图片资源
// imVip2.setImageResource(0); // 设置默认图片资源
// imLevel2.setImageResource(0); // 设置默认图片资源
tvId2.setText("");
ivOneCp1Hhead.setImageResource(0); // 设置默认图片资源
ivOneCp2Hhead.setImageResource(0); // 设置默认图片资源
tv_cp_xing1.setText("");
tv_cp_name1.setText("");
tv_cp_name2.setText("");
return;
}
tvXing2.setText(StringUtil.toWan2(data.getTotal(),1));
tvXing2.setBackgroundResource(type.equals("3") ? com.xscm.moduleutil.R.mipmap.ranking_za_hr :com.xscm.moduleutil.R.mipmap.ranking_hr);
if (type.equals("0")) {
tvUsername2.setText(data.getRoom_name());
ImageUtils.loadHeadCC(data.getRoom_cover(), imUser2);
tvId2.setText(data.getRoom_number() != null ? "ID:" + data.getRoom_number() : "");
} else if (type.equals("1") || type.equals("2")) {
tvUsername2.setText(data.getNickname());
ImageUtils.loadHeadCC(data.getAvatar(), imUser2);
tvId2.setText(data.getUser_code() != null ? "ID:" + data.getUser_code() : "");
imUser2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ARouter.getInstance().build(ARouteConstants.USER_HOME_PAGE).withString("userId", data.getUser_id()).navigation();
}
});
}
// else if (type.equals("3")) {
// tvUsername2.setText(data.getGuild_name());
// ImageUtils.loadHeadCC(data.getCover(), imUser2);
// tvId2.setText(data.getGuild_special_id() != null ? "ID:" + data.getGuild_special_id() : "");
// }
else {
ImageUtils.loadHeadCC(data.getUser_avatar1(), ivOneCp1Hhead);
ImageUtils.loadHeadCC(data.getUser_avatar1(), ivOneCp2Hhead);
tvUsername2.setText(data.getNickname());
tvId2.setText(data.getNickname1());
tv_cp_xing1.setText(StringUtil.toWan2(data.getTotal(),1));
tv_cp_name1.setText(data.getNickname());
tv_cp_name2.setText(data.getNickname1());
}
}
@Override
public void setNo3(PlaceholderBean.ListsBean data, String type) {
TextView tvUsername3 = mBinding.includeTopBar.tvName3;
// BeautifulNameView beautifulViewThird = mBinding.includeTopBar.beautifulViewThird;
TextView tvXing3 = mBinding.includeTopBar.tvXing3;
GifAvatarOvalView imUser3 = mBinding.includeTopBar.imUser3;
// ImageView imVip3 = mBinding.includeTopBar.ivVip3;
// ImageView imLevel3 = mBinding.includeTopBar.ivLevel3;
TextView tvId3 = mBinding.includeTopBar.tvId3;
GifAvatarOvalView ivOneCp1Hhead = mBinding.includeTopBar.ivSecondCp1Head;
GifAvatarOvalView ivOneCp2Hhead = mBinding.includeTopBar.ivSecondCp2Head;
TextView tv_cp_xing1=mBinding.includeTopBar.tvCpXing3;
TextView tv_cp_name1=mBinding.includeTopBar.tvCpName3;
TextView tv_cp_name2=mBinding.includeTopBar.tvCpName32;
if (data == null) {
tvUsername3.setText("");
// beautifulViewThird.setText("");
tvXing3.setText("");
imUser3.setImageResource(0); // 设置默认图片资源
// imVip3.setImageResource(0); // 设置默认图片资源
// imLevel3.setImageResource(0); // 设置默认图片资源
tvId3.setText("");
ivOneCp1Hhead.setImageResource(0); // 设置默认图片资源
ivOneCp2Hhead.setImageResource(0); // 设置默认图片资源
tv_cp_xing1.setText("");
tv_cp_name1.setText("");
tv_cp_name2.setText("");
return;
}
tvXing3.setText(StringUtil.toWan2(data.getTotal(),1));
tvXing3.setBackgroundResource(type.equals("3") ? com.xscm.moduleutil.R.mipmap.ranking_za_hr :com.xscm.moduleutil.R.mipmap.ranking_hr);
if (type.equals("0")) {
tvUsername3.setText(data.getRoom_name());
ImageUtils.loadHeadCC(data.getRoom_cover(), imUser3);
tvId3.setText(data.getRoom_number() != null ? "ID:" + data.getRoom_number() : "");
} else if (type.equals("1") || type.equals("2")) {
tvUsername3.setText(data.getNickname());
ImageUtils.loadHeadCC(data.getAvatar(), imUser3);
tvId3.setText(data.getUser_code() != null ? "ID:" + data.getUser_code() : "");
imUser3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// ARouter.getInstance().build(ARouteConstants.NEW_HOME_PAGE).withString("userId", listsBean.getUser_id()).navigation();
ARouter.getInstance().build(ARouteConstants.USER_HOME_PAGE).withString("userId", data.getUser_id()).navigation();
}
});
}
// else if (type.equals("3")) {
// tvUsername3.setText(data.getGuild_name());
// ImageUtils.loadHeadCC(data.getCover(), imUser3);
// tvId3.setText(data.getGuild_special_id() != null ? "ID:" + data.getGuild_special_id() : "");
// }
else {
ImageUtils.loadHeadCC(data.getUser_avatar(), ivOneCp1Hhead);
ImageUtils.loadHeadCC(data.getUser_avatar(), ivOneCp2Hhead);
tvUsername3.setText(data.getNickname());
tvId3.setText(data.getNickname1());
tv_cp_xing1.setText(StringUtil.toWan2(data.getTotal(),1));
tv_cp_name1.setText(data.getNickname());
tv_cp_name2.setText(data.getNickname1());
}
}
@Override
public void setList(List<PlaceholderBean.ListsBean> list) {
if (list == null) {
// 如果传入的数据为null清空Adapter的数据
mAdapter.getData().clear();
mAdapter.notifyDataSetChanged();
} else {
// 如果传入的数据不为null设置Adapter的数据
mAdapter.setNewData(list);
}
}
}

View File

@@ -0,0 +1,85 @@
package com.xscm.modulemain.adapter;
import static android.view.View.GONE;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.TopRoom;
import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.utils.logger.Logger;
/**
* com.xscm.modulemain.activity
* qx
* 2025/10/24
*/
public class PopularRoomAdapter extends BaseQuickAdapter<TopRoom, BaseViewHolder> {
public interface OnRoomClickListener {
void onRoomClick(TopRoom room, int position);
}
// 声明监听器实例
private OnRoomClickListener mOnRoomClickListener;
public PopularRoomAdapter() {
super(R.layout.item_popular_room);
}
@Override
protected void convert(BaseViewHolder helper, TopRoom item) {
ImageUtils.loadHeadCC(item.getRoom_cover(), helper.getView(R.id.iv_follow_bg));
TextView tv_name = helper.getView(R.id.tv_name);
tv_name.setText(item.getRoom_name());
tv_name.setSelected(true);
ImageView iv = helper.getView(R.id.iv_play);
if (item.getUser_list()!=null && item.getUser_list().size() > 0) {
iv.setVisibility(View.VISIBLE);
}else {
iv.setVisibility(GONE);
}
helper.setText(R.id.tv_num, formatHotValue(Integer.parseInt(item.getHot_value())));
ImageUtils.loadHeadCC(item.getLabel_icon(), helper.getView(R.id.iv_type));
helper.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 如果外部设置了监听器,则触发外部监听器
if (mOnRoomClickListener != null) {
mOnRoomClickListener.onRoomClick(item, helper.getAdapterPosition());
}
}
});
}
private String formatHotValue(int hotValue) {
if (hotValue > 10000) {
return String.format("%.1fw", hotValue / 10000.0);
} else {
return String.valueOf(hotValue);
}
}
// 提供设置监听器的方法
public void setOnRoomClickListener(OnRoomClickListener listener) {
this.mOnRoomClickListener = listener;
}
@Override
public void onViewRecycled(@NonNull BaseViewHolder holder) {
Logger.e("onViewRecycled", "onViewRecycled");
// ImageView imageView = holder.getView(R.id.riv);
// if (imageView != null) {
// imageView.setImageDrawable(null);
// Glide.with(imageView.getContext()).clear(imageView);
// }
super.onViewRecycled(holder);
}
}

View File

@@ -0,0 +1,82 @@
package com.xscm.modulemain.adapter;
import static com.xscm.moduleutil.utils.UtilConfig.getContext;
import android.widget.ImageView;
import android.widget.LinearLayout;
import androidx.annotation.NonNull;
import com.bumptech.glide.Glide;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.room.RoomAuction;
import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.utils.logger.Logger;
import java.util.List;
public class RankingAutcionAdapter extends BaseQuickAdapter<RoomAuction.AuctionListBean, BaseViewHolder> {
private static String GG = "0";
private static String MM = "1";
public RankingAutcionAdapter() {
super(R.layout.item_ranking_auction);
}
@Override
public void onViewRecycled(@NonNull BaseViewHolder holder) {
Logger.e("onViewRecycled", "onViewRecycled");
ImageView ivEmoji = holder.getView(R.id.room_item_head);
ImageView ivGrade = holder.getView(R.id.room_item_grade);
ImageView ivNobility = holder.getView(R.id.room_item_rank);
if (ivEmoji != null) {
ivEmoji.setImageDrawable(null);
Glide.with(ivEmoji.getContext()).clear(ivEmoji);
}
if (ivGrade != null) {
ivGrade.setImageDrawable(null);
Glide.with(ivGrade.getContext()).clear(ivGrade);
}
if (ivNobility != null) {
ivNobility.setImageDrawable(null);
Glide.with(ivNobility.getContext()).clear(ivNobility);
}
super.onViewRecycled(holder);
}
@Override
protected void convert(BaseViewHolder helper, RoomAuction.AuctionListBean item) {
helper.setText(R.id.room_item_seq, String.valueOf(helper.getAdapterPosition() + 4));//从第四个开始设置值
helper.setText(R.id.room_item_name, item.getNickname());
helper.setText(R.id.room_item_pop, item.getGift_prices());
ImageUtils.loadHeadCC(item.getAvatar(), helper.getView(R.id.room_item_head));
helper.addOnClickListener(R.id.room_item_head);
LinearLayout llContainer =helper.getView(R.id.lli);
llContainer.removeAllViews(); // 清空旧的 ImageView
List<String> images = item.getIcon(); // 获取图片列表
for (String url : images) {
if (url.contains("http")) {
ImageView imageView1 = new ImageView(getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
);
params.setMargins(0, 0, getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView1.setLayoutParams(params);
imageView1.setScaleType(ImageView.ScaleType.CENTER_CROP);
// 使用 Glide 加载图片
ImageUtils.loadHeadCC(url, imageView1);
llContainer.addView(imageView1);
}
}
}
}

View File

@@ -0,0 +1,107 @@
package com.xscm.modulemain.adapter;
import static com.xscm.moduleutil.utils.UtilConfig.getContext;
import android.widget.ImageView;
import android.widget.LinearLayout;
import androidx.annotation.NonNull;
import com.bumptech.glide.Glide;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.CharmRankingResp;
import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.utils.StringUtil;
import com.xscm.moduleutil.utils.logger.Logger;
import java.util.List;
/**
*@author qx
*@data 2025/7/16
*@description: 房间榜单适配器
*/
public class RankingCharmListAdapter extends BaseQuickAdapter<CharmRankingResp, BaseViewHolder> {
private static String GG = "0";
private static String MM = "1";
public RankingCharmListAdapter() {
super(R.layout.room_rv_item_ranking_rich);
}
@Override
protected void convert(BaseViewHolder helper, CharmRankingResp item) {
//数据绑定赋值
helper.setText(R.id.room_item_seq, String.valueOf(helper.getAdapterPosition() + 4));//从第四个开始设置值
helper.setText(R.id.room_item_name, item.getNickname());
helper.setText(R.id.room_item_pop, StringUtil.toWan2(item.getTotal(),2));
// if (GG.equals(item.getSex())) {
// helper.setBackgroundRes(R.id.room_item_pop, R.mipmap.room_bg_wheat_charm_gg_sr);
// } else {
// helper.setBackgroundRes(R.id.room_item_pop, R.mipmap.room_bg_wheat_charm_mm_sr);
// }
ImageUtils.loadHeadCC(item.getAvatar(), helper.getView(R.id.room_item_head));
// if (TextUtils.isEmpty(nobility)) {
// helper.getView(R.id.room_item_grade).setVisibility(View.GONE);
// } else {
// helper.getView(R.id.room_item_grade).setVisibility(View.VISIBLE);
// }
// if (TextUtils.isEmpty(status)) {
// helper.getView(R.id.room_item_rank).setVisibility(View.GONE);
// } else {
// helper.getView(R.id.room_item_rank).setVisibility(View.VISIBLE);
// }
// TextView textView = helper.getView(R.id.room_item_pop);
// if (helper.getAdapterPosition() % 2 == 1) {
// helper.getView(R.id.room_item_bg).setVisibility(View.GONE);//隔开隐藏背景
// } else {
// helper.getView(R.id.room_item_bg).setVisibility(View.VISIBLE);
// }
helper.addOnClickListener(R.id.room_item_head);
LinearLayout ll = helper.getView(R.id.bnv_rank_list_rich);
List<String> images = item.getIcon(); // 获取图片列表
ll.removeAllViews();
for (String url : images) {
if (url.contains("http")) {
ImageView imageView1 = new ImageView(getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
);
params.setMargins(0, 0, getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView1.setLayoutParams(params);
imageView1.setScaleType(ImageView.ScaleType.FIT_CENTER);
// 使用 Glide 加载图片
ImageUtils.loadHeadCC(url, imageView1);
ll.addView(imageView1);
}
}
}
@Override
public void onViewRecycled(@NonNull BaseViewHolder holder) {
Logger.e("onViewRecycled", "onViewRecycled");
ImageView ivEmoji = holder.getView(R.id.room_item_head);
ImageView ivGrade = holder.getView(R.id.room_item_grade);
ImageView ivNobility = holder.getView(R.id.room_item_rank);
if (ivEmoji != null) {
ivEmoji.setImageDrawable(null);
Glide.with(ivEmoji.getContext()).clear(ivEmoji);
}
if (ivGrade != null) {
ivGrade.setImageDrawable(null);
Glide.with(ivGrade.getContext()).clear(ivGrade);
}
if (ivNobility != null) {
ivNobility.setImageDrawable(null);
Glide.with(ivNobility.getContext()).clear(ivNobility);
}
super.onViewRecycled(holder);
}
}

View File

@@ -0,0 +1,85 @@
package com.xscm.modulemain.adapter;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import com.bumptech.glide.Glide;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.WealthRankingResp;
import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.utils.logger.Logger;
import com.xscm.moduleutil.widget.BeautifulNameView;
/**
* 项目名称 qipao-android
* 包名com.qpyy.room.adapter
* 创建人 黄强
* 创建时间 2020/7/25 10:37
* 描述 describe
*/
public class RankingWealthListAdapter extends BaseQuickAdapter<WealthRankingResp.ListsBean, BaseViewHolder> {
public RankingWealthListAdapter() {
super(R.layout.room_rv_item_ranking_rich);
}
@Override
protected void convert(BaseViewHolder helper, WealthRankingResp.ListsBean item) {
//数据绑定赋值
helper.setText(R.id.room_item_seq, String.valueOf(helper.getAdapterPosition() + 4));//从第四个开始设置值
helper.setText(R.id.room_item_name, item.getNickname());
// ((BeautifulNameView) helper.getView(R.id.bnv_rank_list_rich)).setText(String.format(mContext.getResources().getString(R.string.common_id_formatter), item.getUser_code()));
// ((BeautifulNameView) helper.getView(R.id.bnv_rank_list_rich)).setTextColor(!TextUtils.isEmpty(item.getId_color()) ? Color.parseColor(item.getId_color()) : mContext.getResources().getColor(R.color.color_FFCCCCCC));
((BeautifulNameView) helper.getView(R.id.bnv_rank_list_rich)).setPlay(!TextUtils.isEmpty(item.getId_color()));
((BeautifulNameView) helper.getView(R.id.bnv_rank_list_rich)).setImgVisible("1".equals(item.getGood_number()));
helper.setText(R.id.room_item_pop, item.getNumber_format());
ImageUtils.loadHeadCC(item.getHead_picture(), helper.getView(R.id.room_item_head));
String nobility = item.getLevel_icon();//等级
String status = item.getNobility_icon();//爵位
ImageUtils.loadImageView(item.getNobility_icon(), helper.getView(R.id.room_item_rank));
ImageUtils.loadImageView(item.getLevel_icon(), helper.getView(R.id.room_item_grade));
if (TextUtils.isEmpty(nobility)) {
helper.getView(R.id.room_item_grade).setVisibility(View.GONE);
} else {
helper.getView(R.id.room_item_grade).setVisibility(View.VISIBLE);
}
if (TextUtils.isEmpty(status)) {
helper.getView(R.id.room_item_rank).setVisibility(View.GONE);
} else {
helper.getView(R.id.room_item_rank).setVisibility(View.VISIBLE);
}
if (helper.getAdapterPosition() % 2 == 1) {
helper.getView(R.id.room_item_bg).setVisibility(View.GONE);//隔开隐藏背景
} else {
helper.getView(R.id.room_item_bg).setVisibility(View.VISIBLE);//隔开隐藏背景
}
helper.addOnClickListener(R.id.room_item_head);
}
@Override
public void onViewRecycled(@NonNull BaseViewHolder holder) {
Logger.e("onViewRecycled", "onViewRecycled");
ImageView ivEmoji = holder.getView(R.id.room_item_head);
ImageView ivGrade = holder.getView(R.id.room_item_grade);
ImageView ivNobility = holder.getView(R.id.room_item_rank);
if (ivEmoji != null) {
ivEmoji.setImageDrawable(null);
Glide.with(ivEmoji.getContext()).clear(ivEmoji);
}
if (ivGrade != null) {
ivGrade.setImageDrawable(null);
Glide.with(ivGrade.getContext()).clear(ivGrade);
}
if (ivNobility != null) {
ivNobility.setImageDrawable(null);
Glide.with(ivNobility.getContext()).clear(ivNobility);
}
super.onViewRecycled(holder);
}
}

View File

@@ -0,0 +1,30 @@
package com.xscm.modulemain.adapter;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.RedpacketDetail;
import com.xscm.moduleutil.utils.ImageUtils;
import java.text.SimpleDateFormat;
import java.util.Date;
public class RedAdapter extends BaseQuickAdapter<RedpacketDetail.Records, BaseViewHolder> {
public RedAdapter() {
super(R.layout.item_red);
}
@Override
protected void convert(BaseViewHolder baseViewHolder,RedpacketDetail.Records redBean) {
ImageUtils.loadHeadCC(redBean.getAvatar(), baseViewHolder.getView(R.id.red_user_avatar));
baseViewHolder.setText(R.id.tv_user_name, redBean.getNickname());
baseViewHolder.setText(R.id.tv_red_num, redBean.getAmount());
baseViewHolder.setText(R.id.tv_time, redBean.getCreatetime());
}
private String formatTimestamp(long timestamp) {
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
return sdf.format(new Date(timestamp));
}
}

View File

@@ -0,0 +1,117 @@
package com.xscm.modulemain.adapter;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.RedPacketInfo;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* 红包的列表适配器
*/
public class RedBagAdapter extends BaseQuickAdapter<RedPacketInfo, BaseViewHolder> {
private Map<Integer,View> viewMap;
public RedBagAdapter() {
super(R.layout.item_red_bag);
viewMap=new ConcurrentHashMap<>();
}
@Override
protected void convert(BaseViewHolder helper, RedPacketInfo item) {
viewMap.put(helper.getLayoutPosition(),helper.itemView);
ImageView iv_red_bag= helper.getView(R.id.iv_red_bag);
if (item.getIs_qiang()==1){
iv_red_bag.setImageResource(com.xscm.moduleutil.R.mipmap.red_bj_h);
helper.setText(R.id.tv_djs, "已领取");
}else {
iv_red_bag.setImageResource(com.xscm.moduleutil.R.mipmap.red);
if (item.getType()==2){
helper.setVisible(R.id.im_list_bj,true);
}else {
helper.setVisible(R.id.im_list_bj,false);
}
// 显示倒计时
if (item.getCountdown() > 0) {
helper.setVisible(R.id.tv_djs, true);
long minutes = item.getCountdown() / 60;
long seconds = item.getCountdown() % 60;
String timeFormat = String.format("%02d:%02d", minutes, seconds);
helper.setText(R.id.tv_djs, timeFormat);
} else {
helper.setVisible(R.id.tv_djs, false);
}
}
helper.setText(R.id.tv_user_name, item.getNickname());
}
/**
* 更新指定位置的倒计时显示不刷新整个item
* @param position 列表位置
* @param countdown 倒计时时间(秒)
*/
public void updateCountdown(int position, long countdown) {
if (position >= 0 && position < getData().size()) {
// 获取对应位置的item view
View view = viewMap.get(position);
if (view != null) {
// 直接更新倒计时文本不刷新整个item
TextView tvDjs = view.findViewById(R.id.tv_djs);
if (tvDjs != null) {
// 格式化倒计时显示
long minutes = countdown / 60;
long seconds = countdown % 60;
String timeFormat = String.format("%02d:%02d", minutes, seconds);
tvDjs.setText(timeFormat);
// 控制倒计时显示状态
if (countdown > 0) {
tvDjs.setVisibility(View.VISIBLE);
} else {
tvDjs.setVisibility(View.GONE);
}
}
}
}
}
/**
* 根据位置获取item view
* @param position 位置
* @return item对应的view
*/
private View getViewByPosition(int position) {
RecyclerView recyclerView = getRecyclerView();
if (recyclerView != null) {
RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
if (layoutManager != null) {
// 检查 position 是否在可见范围内
if (layoutManager instanceof LinearLayoutManager) {
LinearLayoutManager linearLayoutManager = (LinearLayoutManager) layoutManager;
int firstVisiblePosition = linearLayoutManager.findFirstVisibleItemPosition();
int lastVisiblePosition = linearLayoutManager.findLastVisibleItemPosition();
// 确保 position 在可见范围内
if (position >= firstVisiblePosition && position <= lastVisiblePosition) {
return layoutManager.findViewByPosition(position);
}
}
}
}
return null;
}
}

View File

@@ -0,0 +1,71 @@
package com.xscm.modulemain.adapter;
import android.view.View;
import com.blankj.utilcode.util.LogUtils;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.RelationshipBean;
import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.utils.SpUtil;
import com.xscm.moduleutil.utils.TimeUtils;
public class RelationshipAdapter extends BaseQuickAdapter<RelationshipBean, com.chad.library.adapter.base.BaseViewHolder> {
private OnItemClickListener onItemClickListener;
public RelationshipAdapter() {
super(R.layout.item_relationship);
}
public void setOnItemClickListener(OnItemClickListener listener) {
this.onItemClickListener = listener;
}
@Override
protected void convert(com.chad.library.adapter.base.BaseViewHolder helper, RelationshipBean item) {
if (item.getType() == 1){
helper.getView(R.id.ll).setBackgroundResource(com.xscm.moduleutil.R.mipmap.guxi_k);
}else if (item.getType() == 2){
helper.getView(R.id.ll).setBackgroundResource(com.xscm.moduleutil.R.mipmap.guxi_w);
}
ImageUtils.loadHeadCC(item.getAvatar1(), helper.getView(R.id.user_nav1));
ImageUtils.loadHeadCC(item.getAvatar2(), helper.getView(R.id.user_nav2));
helper.setText(R.id.tv_nickname1, item.getNickname1());
helper.setText(R.id.tv_nickname2, item.getNickname2());
helper.setText(R.id.tv_relation, item.getRelation_name());
LogUtils.e("lxj",Long.parseLong(item.getEnd_time())-System.currentTimeMillis());
helper.setText(R.id.tv_time, TimeUtils.formatDuration2(Long.parseLong(item.getEnd_time())*1000-System.currentTimeMillis()));
if (item.getUser_id1()== SpUtil.getUserId() || item.getUser_id2() == SpUtil.getUserId()){
helper.getView(R.id.im_zhid).setVisibility(View.VISIBLE);
helper.getView(R.id.im_shanchu).setVisibility(View.VISIBLE);
}else {
helper.getView(R.id.im_zhid).setVisibility(View.GONE);
helper.getView(R.id.im_shanchu).setVisibility(View.GONE);
}
helper.getView(R.id.im_shanchu).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (onItemClickListener!= null) {
onItemClickListener.onItemClick(view, item, helper.getLayoutPosition());
}
}
});
helper.getView(R.id.im_zhid).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (onItemClickListener!= null) {
onItemClickListener.onItemClick(view, item, helper.getLayoutPosition());
}
}
});
}
public interface OnItemClickListener {
void onItemClick(View view, RelationshipBean data, int position);
}
}

View File

@@ -0,0 +1,32 @@
package com.xscm.modulemain.adapter;
import android.widget.TextView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.RevenueBean;
import com.xscm.moduleutil.utils.TimeUtils;
public class RevenueAdapter extends BaseQuickAdapter<RevenueBean, BaseViewHolder> {
public RevenueAdapter() {
super(R.layout.item_revenue);
}
@Override
protected void convert(BaseViewHolder helper, RevenueBean item) {
if (item!=null && item.getCreatetime()!=null) {
String time = TimeUtils.getDateToStringNoZ(Long.parseLong(item.getCreatetime()) * 1000L);
helper.setText(R.id.tv_time, time);
helper.setText(R.id.tv_name, item.getRemarks());
helper.setText(R.id.tv_jb, item.getChange_value());
TextView textView=helper.getView(R.id.tv_name);
textView.setSelected(true);
if (item.getType()==2){
helper.getView(R.id.im_ty).setBackgroundResource(com.xscm.moduleutil.R.mipmap.gift_t);
}else if (item.getType()==1){
helper.getView(R.id.im_ty).setBackgroundResource(com.xscm.moduleutil.R.mipmap.jinb);
}
}
}
}

View File

@@ -0,0 +1,43 @@
package com.xscm.modulemain.adapter;
import static com.xscm.moduleutil.utils.UtilConfig.getContext;
import android.widget.TextView;
import androidx.annotation.Nullable;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.RoomSubsidyDetails;
import java.util.List;
public class RoomAllowanceDetailAdapter extends BaseQuickAdapter<RoomSubsidyDetails, BaseViewHolder> {
public RoomAllowanceDetailAdapter() {
super(R.layout.room_index_item_subsidy);
}
@Override
protected void convert(BaseViewHolder helper, RoomSubsidyDetails item) {
helper.setText(R.id.tv_data, item.getStart_time() + "-" + item.getEnd_time());
helper.setText(R.id.tv_lj, item.getTotal_transaction());
helper.setText(R.id.tv_bt, item.getSubsidy_amount());
TextView tv_status = helper.getView(R.id.tv_status);
if (item.getStatus().equals("1")) {
tv_status.setText("已发放");
tv_status.setTextColor(getContext().getResources().getColor(com.xscm.moduleutil.R.color.color_FF999999));
} else {
tv_status.setText("未发放");
tv_status.setTextColor(getContext().getResources().getColor(com.xscm.moduleutil.R.color.color_45d08c));
}
}
@Override
public void setNewData(@Nullable List<RoomSubsidyDetails> data) {
super.setNewData(data);
}
}

View File

@@ -0,0 +1,60 @@
package com.xscm.modulemain.adapter;
import static com.xscm.moduleutil.utils.UtilConfig.getContext;
import android.widget.ImageView;
import android.widget.LinearLayout;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.RoomUserCharmListBean;
import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.utils.MeHeadView;
import java.util.List;
/**
*@author qx
*@data 2025/9/10
*@description: 魅力详情适配器
*/
public class RoomCharmAdapter extends BaseQuickAdapter<RoomUserCharmListBean, BaseViewHolder> {
public RoomCharmAdapter() {
super(R.layout.item_charm_dialog);
}
@Override
protected void convert(BaseViewHolder helper, RoomUserCharmListBean item) {
helper.setText(R.id.tv_nick_name, item.getNickname());
helper.setText(R.id.tv_charm, item.getCharm()+"");
helper.setText(R.id.tv_user_id,"ID:"+item.getUser_code());
MeHeadView headView = helper.getView(R.id.im_user);
headView.setData(item.getAvatar(), "", "");
LinearLayout llContainer =helper.getView(R.id.ll_in);
llContainer.removeAllViews(); // 清空旧的 ImageView
if (item.getIcon() == null){
return;
}
List<String> images = item.getIcon(); // 获取图片列表
for (String url : images) {
if (url.contains("http")) {
ImageView imageView1 = new ImageView(getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
);
params.setMargins(0, 0, getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView1.setLayoutParams(params);
imageView1.setScaleType(ImageView.ScaleType.CENTER_CROP);
// 使用 Glide 加载图片
ImageUtils.loadHeadCC(url, imageView1);
llContainer.addView(imageView1);
}
}
}
}

View File

@@ -0,0 +1,62 @@
package com.xscm.modulemain.adapter;
import android.widget.TextView;
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.details.BaseMultiItemEntity;
import com.xscm.moduleutil.bean.details.RoomDeatailList;
import com.xscm.moduleutil.bean.details.RoomDeatil;
import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.widget.GifAvatarOvalView;
import java.util.List;
public class RoomDetailsAdapter extends BaseMultiItemQuickAdapter<BaseMultiItemEntity, BaseViewHolder> {
private static final int TYPE_DATE_HEADER = 1;
private static final int TYPE_GIFT_ITEM = 2;
public RoomDetailsAdapter(List<BaseMultiItemEntity> data) {
super(data);
addItemType(BaseMultiItemEntity.TYPE_A, R.layout.item_date_header);
addItemType(BaseMultiItemEntity.TYPE_B, R.layout.room_details_list);
// 开启吸顶功能
enableLoadMoreEndClick(false); // 禁用加载更多点击事件,防止冲突
setEnableLoadMore(false); // 禁用加载更多功能,防止冲突
}
@Override
protected void convert(BaseViewHolder helper, BaseMultiItemEntity item) {
switch (helper.getItemViewType()) {
case TYPE_DATE_HEADER:
RoomDeatailList roomDetailList = (RoomDeatailList) item;
helper.setText(R.id.tv6, roomDetailList.getTime());
helper.setText(R.id.tv8, roomDetailList.getTotal_earning() + "");
helper.setText(R.id.tve, roomDetailList.getTotal_price() + "");
break;
case TYPE_GIFT_ITEM:
RoomDeatil item1 = (RoomDeatil) item;
GifAvatarOvalView avatarView = helper.getView(R.id.riv);
TextView tvName = helper.getView(R.id.tv_name);
TextView tv2 = helper.getView(R.id.tv_2);
TextView tv3 = helper.getView(R.id.tv_3);
TextView tv_go_to_room = helper.getView(R.id.tv_go_to_room);
ImageUtils.loadImageView(item1.getSender_avatar(), avatarView);
tvName.setText(item1.getSender_nickname());
tv2.setText(item1.getReceive_nickname());
tv3.setText(item1.getGift_name() + "x" + item1.getNumber());
tv_go_to_room.setText(item1.getTotal_price() + "");
break;
}
}
private boolean isSticky(RoomDeatailList item) {
// 返回是否为吸顶项的逻辑
return item.isSticky();
}
}

View File

@@ -0,0 +1,77 @@
package com.xscm.modulemain.adapter;
import android.view.View;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.room.RoomHourBean;
import com.xscm.moduleutil.utils.ImageUtils;
public class RoomHourlyAdapter extends BaseQuickAdapter<RoomHourBean.RoomListBean, BaseViewHolder> {
public RoomHourlyAdapter() {
super(R.layout.item_hourly);
}
// 定义点击监听器接口
public interface OnItemClickListener {
void onItemClick(RoomHourBean.RoomListBean item, int position);
}
private OnItemClickListener mOnItemClickListener;
// 设置监听器的方法
public void setOnItemClickListener(OnItemClickListener listener) {
this.mOnItemClickListener = listener;
}
@Override
protected void convert(BaseViewHolder baseViewHolder, RoomHourBean.RoomListBean roomListBean) {
// 获取当前项的索引
int position = baseViewHolder.getLayoutPosition();
if (position == 0){
baseViewHolder.setText(R.id.tv_num, "");
baseViewHolder.setBackgroundRes(R.id.tv_num, com.xscm.moduleutil.R.mipmap.top1);
}else if (position == 1){
baseViewHolder.setText(R.id.tv_num, "");
baseViewHolder.setBackgroundRes(R.id.tv_num, com.xscm.moduleutil.R.mipmap.top2);
}else if (position == 2){
baseViewHolder.setText(R.id.tv_num, "");
baseViewHolder.setBackgroundRes(R.id.tv_num, com.xscm.moduleutil.R.mipmap.top3);
}else {
baseViewHolder.setBackgroundRes(R.id.tv_num, com.xscm.moduleutil.R.mipmap.hourly_num);
baseViewHolder.setText(R.id.tv_num, position+1+"");
}
ImageUtils.loadHeadCC(roomListBean.getRoom_cover(), baseViewHolder.getView(R.id.room_tx));
if (roomListBean.getXlh_status()==1){
baseViewHolder.getView(R.id.im_xlh).setVisibility(View.GONE);
baseViewHolder.getView(R.id.tv_sta).setVisibility(View.GONE);
baseViewHolder.setText(R.id.tv_sta, "进行中");
baseViewHolder.setBackgroundRes(R.id.tv_sta, com.xscm.moduleutil.R.mipmap.jxz);
}else if (roomListBean.getXlh_status()==2){
baseViewHolder.getView(R.id.im_xlh).setVisibility(View.GONE);
baseViewHolder.getView(R.id.tv_sta).setVisibility(View.GONE);
baseViewHolder.setText(R.id.tv_sta, "即将开始");
baseViewHolder.setBackgroundRes(R.id.tv_sta, com.xscm.moduleutil.R.mipmap.jiks);
}else {
baseViewHolder.getView(R.id.im_xlh).setVisibility(View.GONE);
baseViewHolder.getView(R.id.tv_sta).setVisibility(View.GONE);
}
if (roomListBean.getRedpacket_status()==0){
baseViewHolder.getView(R.id.im_red).setVisibility(View.GONE);
}else {
baseViewHolder.getView(R.id.im_red).setVisibility(View.VISIBLE);
}
baseViewHolder.setText(R.id.room_name, roomListBean.getRoom_name());
ImageUtils.loadHeadCC(roomListBean.getLabel_icon(), baseViewHolder.getView(R.id.iv_type));
baseViewHolder.setText(R.id.room_hr, roomListBean.getTotal_price()+"");
// 为整个item设置点击事件
baseViewHolder.itemView.setOnClickListener(v -> {
if (mOnItemClickListener != null) {
mOnItemClickListener.onItemClick(roomListBean, position);
}
});
}
}

View File

@@ -0,0 +1,130 @@
package com.xscm.modulemain.adapter;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.room.RoomOnlineBean;
import com.xscm.moduleutil.utils.ColorManager;
import com.xscm.moduleutil.utils.ImageUtils;
import java.util.List;
/**
* @author qx
* @data 2025/6/23
* @description: 在线列表适配器
*/
public class RoomOnlineAdapter extends BaseMultiItemQuickAdapter<RoomOnlineBean, BaseViewHolder> {
/**
* Same as QuickAdapter#QuickAdapter(Context,int) but with
* some initialization data.
*
* @param data A new list is created out of this one to avoid mutable list
*/
public RoomOnlineAdapter(List<RoomOnlineBean> data) {
super(data);
addItemType(1, R.layout.item_room_online_text);
addItemType(2, R.layout.item_onlie_room);
}
// 接口定义
public interface OnJoinButtonClickListener {
void onJoinButtonClick(RoomOnlineBean item);
void onUserInfoClick(RoomOnlineBean item);
}
private OnJoinButtonClickListener listener;
public void setListener(OnJoinButtonClickListener listener) {
this.listener = listener;
}
@Override
protected void convert(BaseViewHolder helper, RoomOnlineBean item) {
if (item.getItemType() == 1) {
helper.setText(R.id.maishang, item.getTypeNames());
} else if (item.getItemType() == 2) {
ImageUtils.loadHeadCC(item.getAvatar(), helper.getView(R.id.like_avatar));
helper.setText(R.id.tv_nickname, item.getNickname());
ImageView imageView = helper.getView(R.id.im_i);
TextView textView = helper.getView(R.id.tv_status);
imageView.setVisibility(VISIBLE);
if (item.getRole().equals("1")) {
imageView.setImageResource(com.xscm.moduleutil.R.mipmap.fangz);
} else if (item.getRole().equals("2")) {
imageView.setImageResource(com.xscm.moduleutil.R.mipmap.gly);
} else if (item.getRole().equals("3")) {
imageView.setImageResource(com.xscm.moduleutil.R.mipmap.zc);
} else if (item.getRole().equals("4")) {
helper.getView(R.id.im_i).setVisibility(GONE);
// imageView.setImageResource(com.qxcm.moduleutil.R.mipmap.jb);
} else {
helper.getView(R.id.im_i).setVisibility(GONE);
}
// if (item.getType() == 1){
//
// }
if (item.getType() == 2 && item.getType_pit() == 1) {
textView.setVisibility(GONE);
} else {
textView.setVisibility(VISIBLE);
}
// else if (item.getType() == 2 && item.getType_pit() == 2){
// textView.setVisibility(VISIBLE);
// }else if (item.getType() == 1 && item.getType_pit() == 0){
// textView.setVisibility(GONE);
// }
textView.setText(item.getPit_number() != 0 ? (item.getPit_number() == 9 ? "主持" : (item.getPit_number() == 10 ? "嘉宾" : item.getPit_number()+ "号麦")) : "抱麦");
textView.setTextColor(ColorManager.getInstance().getPrimaryColorInt());
LinearLayout llContainer = helper.getView(R.id.line);
llContainer.removeAllViews(); // 清空旧的 ImageView
List<String> images = item.getIcon(); // 获取图片列表
for (String url : images) {
if (url.contains("http")) {
ImageView imageView1 = new ImageView(helper.itemView.getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57),
helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_14)
);
params.setMargins(0, 0, helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView1.setLayoutParams(params);
imageView1.setScaleType(ImageView.ScaleType.CENTER_CROP);
// 使用 Glide 加载图片
ImageUtils.loadHeadCC(url, imageView1);
llContainer.addView(imageView1);
}
}
helper.getView(R.id.tv_status).setOnClickListener(v -> {
if (textView.getText().toString().equals("抱麦")) {
if (listener != null) {
listener.onJoinButtonClick(item);
}
}
});
helper.itemView.setOnClickListener(v -> {
if (listener != null) {
listener.onUserInfoClick(item);
}
});
}
}
}

View File

@@ -0,0 +1,99 @@
package com.xscm.modulemain.adapter;
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.room.RoomSettingBean;
import java.util.List;
public class RoomSettingAdapter extends BaseMultiItemQuickAdapter<RoomSettingBean, BaseViewHolder> {
public RoomSettingAdapter(List<RoomSettingBean> data) {
super(data);
addItemType(RoomSettingBean.ITEM_TYPE_DEFAULT, R.layout.item_title);
addItemType(RoomSettingBean.ITEM_TYPE_WITH_ICON, R.layout.item_setting);
}
@Override
protected void convert(BaseViewHolder holder, RoomSettingBean item) {
if (item.getItemType() == RoomSettingBean.ITEM_TYPE_DEFAULT) {
holder.setVisible(R.id.tv_title, true);
holder.setText(R.id.tv_title, item.getName());
} else {
holder.setText(R.id.tv_name, getName(item.getType(), item.isSelect(), item.getName()));
holder.setImageResource(R.id.iv_icon, getIconResId(item.getType(), item.isSelect()));
}
}
private String getName(int type, boolean isSelected, String name) {
boolean b = isSelected;
switch (type) {
case RoomSettingBean.QXRoomSettingTypeRoomOrderMic:
return b ? "排麦模式" : "自由模式";
case RoomSettingBean.QXRoomSettingTypeRoomCloseEffects:
return b ? "关闭特效" : "开启特效";
case RoomSettingBean.QXRoomSettingTypeRoomFloatingScreen:
return b ? "关闭飘屏" : "开启飘屏";
default:
return name;
}
}
// 根据 type 获取对应的图标资源 ID
private int getIconResId(int type, boolean isSelected) {
boolean b = isSelected;
switch (type) {
case RoomSettingBean.QXRoomSettingTypeRoomTypeSing:
return com.xscm.moduleutil.R.mipmap.ic_sing;
case RoomSettingBean.QXRoomSettingTypeRoomTypeAuction:
return com.xscm.moduleutil.R.mipmap.ic_auction;
case RoomSettingBean.QXRoomSettingTypeRoomTypeBoy:
return com.xscm.moduleutil.R.mipmap.ic_boy;
case RoomSettingBean.QXRoomSettingTypeRoomTypeGirl:
return com.xscm.moduleutil.R.mipmap.ic_girl;
case RoomSettingBean.QXRoomSettingTypeRoomTypeJiaoy:
return com.xscm.moduleutil.R.mipmap.ic_jiaoy;
case RoomSettingBean.QXRoomSettingTypeRoomTypeHUYU:
return com.xscm.moduleutil.R.mipmap.huyu;
case RoomSettingBean.QXRoomSettingTypeRoomTypeLianG:
return com.xscm.moduleutil.R.mipmap.icon_liang;
// 常用工具
case RoomSettingBean.QXRoomSettingTypeRoomSubsidy:
return com.xscm.moduleutil.R.mipmap.ic_subsidy;
case RoomSettingBean.QXRoomSettingTypeRoomCompere:
return com.xscm.moduleutil.R.mipmap.ic_compere;
case RoomSettingBean.QXRoomSettingTypeRoomClearMessage:
return com.xscm.moduleutil.R.mipmap.ic_clear_message;
case RoomSettingBean.QXRoomSettingTypeRoomOrderMic:
return b ? com.xscm.moduleutil.R.mipmap.ic_order_mic : com.xscm.moduleutil.R.mipmap.ic_order_mic_selected;
case RoomSettingBean.QXRoomSettingTypeRoomBgMusic:
return com.xscm.moduleutil.R.mipmap.ic_bg_music;
case RoomSettingBean.QXRoomSettingTypeRoomBgImage:
return com.xscm.moduleutil.R.mipmap.ic_bg_image;
// 更多操作
// case RoomSettingBean.QXRoomSettingTypeRoomLeave:
// return com.xscm.moduleutil.R.mipmap.ic_leave;
case RoomSettingBean.QXRoomSettingTypeRoomShare:
return com.xscm.moduleutil.R.mipmap.ic_share;
case RoomSettingBean.QXRoomSettingTypeRoomMyDress:
return com.xscm.moduleutil.R.mipmap.tiaoyint;
case RoomSettingBean.QXRoomSettingTypeRoomSetting:
return com.xscm.moduleutil.R.mipmap.ic_room_setting;
case RoomSettingBean.QXRoomSettingTypeRoomWelcome:
return com.xscm.moduleutil.R.mipmap.ic_welcome;
case RoomSettingBean.QXRoomSettingTypeRoomCloseEffects:
return b ? com.xscm.moduleutil.R.mipmap.ic_close_effects : com.xscm.moduleutil.R.mipmap.ic_open_effects;
case RoomSettingBean.QXRoomSettingTypeRoomReport:
return com.xscm.moduleutil.R.mipmap.ic_report;
case RoomSettingBean.QXRoomSettingTypeRoomFloatingScreen:
return b ? com.xscm.moduleutil.R.mipmap.ic_close_floating_screen : com.xscm.moduleutil.R.mipmap.ic_open_floating_screen;
case RoomSettingBean.QXRoomSettingTypeRoomFloatingRed:
return com.xscm.moduleutil.R.mipmap.red_tx;
default:
return 0;
}
}
}

View File

@@ -0,0 +1,20 @@
package com.xscm.modulemain.adapter;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
/**
* 历史记录
*/
public class SearchHistoryAdapter extends BaseQuickAdapter<String, BaseViewHolder> {
public SearchHistoryAdapter() {
super(R.layout.index_item_history);
}
@Override
protected void convert(BaseViewHolder helper, String item) {
helper.setText(R.id.tv_text, item);
}
}

View File

@@ -0,0 +1,40 @@
package com.xscm.modulemain.adapter;
import android.graphics.Color;
import com.chad.library.adapter.base.BaseSectionQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.RecordSection;
import com.xscm.moduleutil.utils.KeyWordUtil;
/**
* 模糊搜索结果
*/
public class SearchRecordAdapter extends BaseSectionQuickAdapter<RecordSection, BaseViewHolder> {
private String keyWord = "";
public SearchRecordAdapter() {
super(R.layout.index_item_record, R.layout.index_item_tecord_head, null);
}
@Override
protected void convert(BaseViewHolder helper, RecordSection item) {
helper.setText(R.id.tv_text, KeyWordUtil.matcherSearchTitle(Color.parseColor("#FFBC00"), item.t, keyWord));
helper.addOnClickListener(R.id.tv_text);
}
@Override
protected void convertHead(BaseViewHolder helper, RecordSection item) {
helper.setText(R.id.tv_head, item.header);
}
public void setKeyWord(String keyWord) {
this.keyWord = keyWord;
}
}

View File

@@ -0,0 +1,55 @@
package com.xscm.modulemain.adapter;
import static android.view.View.GONE;
import android.widget.ImageView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.RoomSearchResp;
import com.xscm.moduleutil.utils.ImageUtils;
/**
* 搜索房间结果
*/
public class SearchRoomResultAdapter extends BaseQuickAdapter<RoomSearchResp, BaseViewHolder> {
public SearchRoomResultAdapter() {
super(R.layout.index_item_search_room_result);
}
@Override
protected void convert(BaseViewHolder helper,RoomSearchResp item) {
ImageUtils.loadHeadCC(item.getRoom_cover(), helper.getView(R.id.iv_follow_bg));
helper.setText(R.id.tv_name, item.getRoom_name());
ImageView iv = helper.getView(R.id.iv_play);
// if (item.getIcon()!=null && item.getIcon().size() > 0) {
// iv.setVisibility(View.VISIBLE);
// ImageUtils.loadRes(com.qxcm.moduleutil.R.drawable.voice_play, iv);
// }else {
iv.setVisibility(GONE);
// }
helper.setText(R.id.tv_num, formatHotValue(Integer.parseInt(item.getHot_value()!=null ? item.getHot_value() : "0")));
ImageUtils.loadHeadCC(item.getLabel_icon(), helper.getView(R.id.iv_type));
// helper.setOnClickListener(R.id.iv_play,new View.OnClickListener() {
// @Override
// public void onClick(View v) {
// RoomManager.getInstance().fetchRoomDataAndEnter(mContext.getApplicationContext(), item.getRoom_id() ,"");
//
//// ARouter.getInstance().build(ARouteConstants.LIVE_ROOM).withString("form","首页热门列表").withString("roomId", item.getId()).navigation();
//// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form", "首页热门列表").withString("roomId", item.getId()).navigation();
//
// }
// });
}
private String formatHotValue(int hotValue) {
if (hotValue > 10000) {
return String.format("%.1fw", hotValue / 10000.0);
} else {
return String.valueOf(hotValue);
}
}
}

View File

@@ -0,0 +1,74 @@
package com.xscm.modulemain.adapter;
import android.graphics.Color;
import android.view.View;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.UserResultResp;
import com.xscm.moduleutil.utils.KeyWordUtil;
import com.xscm.moduleutil.utils.MeHeadView;
/**
* 搜索用户的结果
*/
public class SearchUserResultAdapter extends BaseQuickAdapter<UserResultResp, BaseViewHolder> {
private OnItemClickListener mListener;
public void setOnItemClickListener(OnItemClickListener listener) {
this.mListener = listener;
}
public interface OnItemClickListener {
void onGnsClick(UserResultResp item);
void onHeadImageClick(UserResultResp item);
}
private String keyWord = "";
public SearchUserResultAdapter() {
super(R.layout.index_item_search_user_result);
}
@Override
protected void convert(BaseViewHolder helper, UserResultResp item) {
helper.setText(R.id.dy_name_text, KeyWordUtil.matcherSearchTitle(Color.parseColor("#FFBC00"), item.getNickname(), keyWord));
helper.setText(R.id.tv_id, "ID:" + item.getUser_code());
MeHeadView headView = helper.getView(R.id.dy_head_image);
headView.setData(item.getHead_picture(), "", item.getSex());
// if (item.getUser_id().equals(SpUtil.getUserId() + "")) {
// helper.setVisible(R.id.gensui, false);
// } else {
// helper.setVisible(R.id.gensui, true);
// }
// 先判断不为null再判断不是空字符串且不是"0"(三个条件需同时满足)
if (item.getRoom_id() != null && !item.getRoom_id().isEmpty() && !"0".equals(item.getRoom_id())) {
helper.getView(R.id.gensui).setBackgroundResource(com.xscm.moduleutil.R.mipmap.gsui);
} else {
helper.getView(R.id.gensui).setBackgroundResource(com.xscm.moduleutil.R.mipmap.six);
}
helper.getView(R.id.dy_head_image).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mListener != null) mListener.onHeadImageClick(item);
}
});
helper.getView(R.id.gensui).setOnClickListener(v -> {
if (mListener!=null){
mListener.onGnsClick(item);
}
});
}
public void setKeyWord(String keyWord) {
this.keyWord = keyWord;
}
}

View File

@@ -0,0 +1,47 @@
package com.xscm.modulemain.adapter;
import android.content.Context;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
/**
* A [FragmentPagerAdapter] that returns a fragment corresponding to
* one of the sections/tabs/pages.
*/
public class SectionsPagerAdapter extends FragmentPagerAdapter {
@StringRes
private static final int[] TAB_TITLES = new int[]{com.xscm.moduleutil.R.string.room_rank, com.xscm.moduleutil.R.string.wealth_rank,
com.xscm.moduleutil.R.string.charm_rank, com.xscm.moduleutil.R.string.true_love_rank};
// com.xscm.moduleutil.R.string.guild_rank,
private final Context mContext;
public SectionsPagerAdapter(Context context, FragmentManager fm) {
super(fm);
mContext = context;
}
@Override
public Fragment getItem(int position) {
// getItem is called to instantiate the fragment for the given page.
// Return a PlaceholderFragment.
return PlaceholderFragment.newInstance(position );
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return mContext.getResources().getString(TAB_TITLES[position]);
}
@Override
public int getCount() {
// Show 2 total pages.
return 4;
}
}

View File

@@ -0,0 +1,80 @@
package com.xscm.modulemain.adapter;
import android.widget.TextView;
import androidx.recyclerview.widget.RecyclerView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.AlbumBean;
import com.xscm.moduleutil.utils.ImageUtils;
/**
*@author qx
*@data 2025/6/6
*@description:相册单选弹框适配器
*/
public class SingleChoiceAdapter extends BaseQuickAdapter<AlbumBean, BaseViewHolder> {
/**
* -- GETTER --
* 获取当前选中位置
*/
private int selectedPosition = -1; // 默认未选中
public SingleChoiceAdapter() {
super(R.layout.item_multi_select_t);
}
@Override
protected void convert(BaseViewHolder helper, AlbumBean item) {
int position1 = helper.getAdapterPosition();
boolean isSelected = (position1 == selectedPosition);
TextView tv_album_name1 = helper.getView(R.id.tv_album_name1);
tv_album_name1.setText(item.getName());
helper.setText(R.id.tv_album_count1, "浏览数:"+item.getRead_num());
ImageUtils.loadHeadCC(item.getImage(), helper.getView(R.id.iv_photo1));
helper.getView(R.id.v_checkbox).setSelected(isSelected); // 使用 CheckBox.setChecked()
// 设置点击事件
helper.itemView.setOnClickListener(v -> {
int pos = helper.getAdapterPosition();
if (pos != RecyclerView.NO_POSITION) {
if (selectedPosition == pos) {
selectedPosition = -1; // 如果已选中,则取消
} else {
selectedPosition = pos; // 更新为新的选中项
}
}
notifyDataSetChanged();
});
helper.getView(R.id.v_checkbox).setOnClickListener(v -> {
int pos = helper.getAdapterPosition();
if (pos != RecyclerView.NO_POSITION) {
if (selectedPosition == pos) {
selectedPosition = -1;
} else {
selectedPosition = pos;
}
}
notifyDataSetChanged();
});
}
/**
* 获取当前选中的条目
*/
public AlbumBean getSelectedItem() {
if (selectedPosition == -1 || selectedPosition >= getData().size()) return null;
return getData().get(selectedPosition);
}
}

View File

@@ -0,0 +1,47 @@
package com.xscm.modulemain.adapter;
import android.widget.TextView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.UserBean;
import com.xscm.moduleutil.utils.ImageUtils;
/**
*@author qx
*@data 2025/5/19
*@description: 用户列表适配器
*/
public class SwitchAccountsAdapter extends BaseQuickAdapter<UserBean, BaseViewHolder> {
// 定义接口用于回调点击事件
public interface OnItemClickListener {
void onItemClick(UserBean item);
}
private OnItemClickListener onItemClickListener;
public void setOnItemClickListener(OnItemClickListener listener) {
this.onItemClickListener = listener;
}
public SwitchAccountsAdapter() {
super(R.layout.item_switch_accounts);
}
@Override
protected void convert(BaseViewHolder helper, UserBean item) {
ImageUtils.loadHeadCC(item.getAvatar(), helper.getView(R.id.im_user2));
helper.setText(R.id.tv_nick_name, item.getNickname());
TextView imageView= helper.getView(R.id.im_g);
// 根据 type 设置图片资源
// 根据 type 和 status 设置图片资源
// 设置点击事件
imageView.setOnClickListener(v -> {
if (onItemClickListener != null) {
onItemClickListener.onItemClick(item);
}
});
}
}

View File

@@ -0,0 +1,137 @@
package com.xscm.modulemain.adapter;
import android.annotation.SuppressLint;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.style.ForegroundColorSpan;
import android.view.View;
import android.widget.TextView;
import androidx.core.content.ContextCompat;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.google.android.material.progressindicator.LinearProgressIndicator;
import com.xscm.moduleutil.bean.GiftBoxBean;
import com.xscm.moduleutil.utils.ImageUtils;
public class TaskBoxAdapter extends BaseQuickAdapter<GiftBoxBean.GiftBean, BaseViewHolder> {
public TaskBoxAdapter() {
super(R.layout.item_task_box);
}
public interface OnItemClickListener {
void onItemClick(int position);
}
private OnItemClickListener onItemClickListener;
public void setOnItemClickListener(OnItemClickListener listener) {
this.onItemClickListener = listener;
}
@SuppressLint("UseCompatLoadingForDrawables")
@Override
protected void convert(BaseViewHolder helper, GiftBoxBean.GiftBean item) {
int position = helper.getLayoutPosition(); // 获取当前位置
View itemView = helper.itemView; // 获取整个 item 的根布局
TextView giftName = helper.getView(R.id.tv_type_name);
TextView giftTitle = helper.getView(R.id.tv_title);
giftName.setText(item.getName());
giftTitle.setText(item.getTitle());
ImageUtils.loadHeadCC(item.getIcon(), helper.getView(R.id.task_box));
if (position == 0) {
itemView.setBackgroundColor(mContext.getResources().getColor(com.xscm.moduleutil.R.color.color_FCE4ED)); // 红色
giftName.setTextColor(mContext.getResources().getColor(com.xscm.moduleutil.R.color.color_E24171));
setSpannableText(giftTitle, "最高可获得%d金币", Integer.parseInt(item.getHighest_gain()),com.xscm.moduleutil.R.color.color_E24171);
// helper.setImageDrawable(R.id.task_box, mContext.getResources().getDrawable(com.qxcm.moduleutil.R.mipmap.task_cj));
} else if (position == 1) {
itemView.setBackgroundColor(mContext.getResources().getColor(com.xscm.moduleutil.R.color.color_FDE8AE)); // 黄色
giftName.setTextColor(mContext.getResources().getColor(com.xscm.moduleutil.R.color.color_F35F07));
setSpannableText(giftTitle, "最高可获得%d金币", Integer.parseInt(item.getHighest_gain()),com.xscm.moduleutil.R.color.color_F35F07);
// helper.setImageDrawable(R.id.task_box, mContext.getResources().getDrawable(com.qxcm.moduleutil.R.mipmap.task_gj));
} else {
// 其他 item 恢复默认背景(可选)
itemView.setBackground(null);
}
helper.setText(R.id.tv_jb, ""+item.getMeet()+"金币");
double progress = Double.parseDouble(item.getUnlock_progress()!=null?item.getUnlock_progress():"0.00");
long progressNum = (long) (progress * 1000);
LinearProgressIndicator progressIndicator= helper.getView(R.id.progress_indicator);
progressIndicator.setProgress(Integer.parseInt(String.valueOf(progressNum)));
double unlock_num = Double.parseDouble(item.getUnlock_progress()!=null?item.getUnlock_progress():"0.00");
long unlock_num_long = (long) (unlock_num * 1000);
helper.setText(R.id.tv_jb_num, Integer.parseInt(String.valueOf(unlock_num_long))/10 + "%");
if (position==0){
progressIndicator.setIndicatorColor(mContext.getResources().getColor(com.xscm.moduleutil.R.color.color_E24171));
}else {
progressIndicator.setIndicatorColor(mContext.getResources().getColor(com.xscm.moduleutil.R.color.color_F35F07));
}
helper.setText(R.id.iv_unlock, item.getStatus_str());
View unlockView = helper.getView(R.id.iv_unlock);
if (item.getStatus().equals("0")){
// helper.setImageDrawable(R.id.iv_unlock, mContext.getResources().getDrawable(com.qxcm.moduleutil.R.mipmap.not_unlocked));
unlockView.setClickable(false);
unlockView.setEnabled(false);
// 可选:改变颜色或透明度来视觉反馈
unlockView.setAlpha(0.9f); // 半透明表示不可点击
}else if (item.getStatus().equals("1")){
unlockView.setClickable(true);
unlockView.setEnabled(true);
unlockView.setAlpha(1.0f); // 恢复正常显示
}else if (item.getStatus().equals("2")){
unlockView.setClickable(false);
unlockView.setEnabled(false);
}
else {
// helper.setImageDrawable(R.id.iv_unlock, mContext.getResources().getDrawable(com.qxcm.moduleutil.R.mipmap.unlocked));
unlockView.setClickable(false);
unlockView.setEnabled(false);
// 可选:改变颜色或透明度来视觉反馈
unlockView.setAlpha(0.8f); // 半透明表示不可点击
}
helper.getView(R.id.iv_unlock).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (onItemClickListener != null) {
int position = helper.getLayoutPosition();
onItemClickListener.onItemClick(position);
}
}
});
}
// 设置带部分颜色的文本
private void setSpannableText(TextView textView, String format, int number,int color) {
String fullText = String.format(format, number);
SpannableString spannableString = new SpannableString(fullText);
// 找到数字的位置
String numberStr = String.valueOf(number);
int startIndex = fullText.indexOf(numberStr);
int endIndex = startIndex + numberStr.length();
if (startIndex >= 0) {
// 设置数字为红色
spannableString.setSpan(
new ForegroundColorSpan(ContextCompat.getColor(mContext,color)), // 使用你定义的颜色
startIndex,
endIndex,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
);
}
textView.setText(spannableString);
}
}

View File

@@ -0,0 +1,71 @@
package com.xscm.modulemain.adapter;
import android.view.View;
import android.widget.TextView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.GiftBoxBean;
import com.xscm.moduleutil.utils.ImageUtils;
/**
*@author qx
*@data 2025/7/12
*@description: 每日任务
*/
public class TaskDataAdapter extends BaseQuickAdapter<GiftBoxBean.TaskDataBean.DailyTasksBean, BaseViewHolder> {
public TaskDataAdapter() {
super(R.layout.item_task_data);
}
public interface ItemClickLitener{
void onItemClick(View view, int position,GiftBoxBean.TaskDataBean.DailyTasksBean item);
}
private ItemClickLitener mItemClickLitener;
public void setItemClickLitener(ItemClickLitener mItemClickLitener) {
this.mItemClickLitener = mItemClickLitener;
}
@Override
protected void convert(BaseViewHolder helper, GiftBoxBean.TaskDataBean.DailyTasksBean item) {
TextView textView=helper.getView(R.id.task_type);
// if (item.getTaskType().equals("1")){
// textView.setBackground(mContext.getResources().getDrawable(com.qxcm.moduleutil.R.mipmap.go_lock));
// }else if (item.getTaskType().equals("2")){
// textView.setBackground(mContext.getResources().getDrawable(com.qxcm.moduleutil.R.mipmap.go_wc));
// } else if (item.getTaskType().equals("3")) {
// textView.setBackground(mContext.getResources().getDrawable(com.qxcm.moduleutil.R.mipmap.go_sl));
// }else if (item.getTaskType().equals("4")) {
// textView.setBackground(mContext.getResources().getDrawable(com.qxcm.moduleutil.R.mipmap.go_yq));
// }else if (item.getTaskType().equals("5")) {
// textView.setBackground(mContext.getResources().getDrawable(com.qxcm.moduleutil.R.mipmap.go_cz));
// }else if (item.getTaskType().equals("6")) {
// textView.setBackground(mContext.getResources().getDrawable(com.qxcm.moduleutil.R.mipmap.ylq));
// }
// textView.setText(item.getTask_type_str().equals("去完成")?"未完成": (item.getTask_type_str().equals("领取金币")?"待领取":item.getTask_type_str()));
if (item.getTask_type_str().equals("去完成")){
textView.setText("未完成");
}else if (item.getTask_type_str().equals("领取金币")){
textView.setText("");
textView.setBackgroundResource(com.xscm.moduleutil.R.mipmap.task_lq);
}else {
textView.setText("");
textView.setBackgroundResource(com.xscm.moduleutil.R.mipmap.task_ylq);
}
ImageUtils.loadHeadCC(item.getIcon(), helper.getView(R.id.task_pic));
helper.setText(R.id.task_name, item.getTask_name())
.setText(R.id.task_jb_number, "+"+item.getGold_reward());
helper.getView(R.id.task_type).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mItemClickLitener!= null){
mItemClickLitener.onItemClick(view, helper.getLayoutPosition(), item);
}
}
});
}
}

View File

@@ -0,0 +1,86 @@
package com.xscm.modulemain.adapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.GiftBoxBean;
import com.xscm.moduleutil.bean.TaskItem;
import java.util.List;
public class TaskSectionAdapter extends RecyclerView.Adapter<TaskSectionAdapter.SectionViewHolder> {
private List<TaskItem> sections;
public TaskSectionAdapter(List<TaskItem> sections) {
this.sections = sections;
}
// 定义点击事件接口
public interface OnItemClickListener {
void onItemClick(TaskItem taskItem, GiftBoxBean.TaskDataBean.DailyTasksBean item);
}
private OnItemClickListener listener;
public void setOnItemClickListener(OnItemClickListener listener) {
this.listener = listener;
}
@NonNull
@Override
public SectionViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_task_header, parent, false);
return new SectionViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull SectionViewHolder holder, int position) {
TaskItem section = sections.get(position);
holder.title.setText(section.title);
TaskDataAdapter adapter = new TaskDataAdapter();
holder.recyclerView.setLayoutManager(new LinearLayoutManager(holder.itemView.getContext()));
holder.recyclerView.setAdapter(adapter);
adapter.setNewData(section.tasks);
if (position==2){
holder.view.setVisibility(View.VISIBLE);
}else {
holder.view.setVisibility(View.GONE);
}
adapter.setItemClickLitener(new TaskDataAdapter.ItemClickLitener() {
@Override
public void onItemClick(View view, int position, GiftBoxBean.TaskDataBean.DailyTasksBean item) {
if (listener!= null) {
listener.onItemClick(section,item);
}
}
});
}
@Override
public int getItemCount() {
return sections.size();
}
static class SectionViewHolder extends RecyclerView.ViewHolder {
TextView title;
RecyclerView recyclerView;
View view;
public SectionViewHolder(@NonNull View itemView) {
super(itemView);
title = itemView.findViewById(R.id.tv_title);
recyclerView = itemView.findViewById(R.id.rv_task_list);
recyclerView.setLayoutManager(new LinearLayoutManager(itemView.getContext()));
view = itemView.findViewById(R.id.v);
}
}
}

View File

@@ -0,0 +1,26 @@
package com.xscm.modulemain.adapter;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.CombinedGiftBean;
import com.xscm.moduleutil.utils.ImageLoader;
import java.util.List;
/**
* @Author lxj$
* @Time 2025年8月1日00:09:34$ $
* @Description 礼物墙中赠送用户显示的adapter$
*/
public class TopUsersAdapter extends BaseQuickAdapter<CombinedGiftBean.TopUsers, BaseViewHolder> {
public TopUsersAdapter(List<CombinedGiftBean.TopUsers> topUsersList) {
super(R.layout.item_top_user, topUsersList);
}
@Override
protected void convert(BaseViewHolder helper, CombinedGiftBean.TopUsers item) {
ImageLoader.loadImage(mContext, helper.getView(R.id.riv_user_avatar), item.getAvatar());
}
}

View File

@@ -0,0 +1,66 @@
package com.xscm.modulemain.adapter;
import android.util.SparseBooleanArray;
import android.view.View;
import android.widget.TextView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.makeramen.roundedimageview.RoundedImageView;
import com.xscm.moduleutil.bean.MixerResp;
import java.util.ArrayList;
import java.util.List;
/**
*@author qx
*@data 2025/6/22
*@description: 混响选择
*/
public class TunerListAdapter extends BaseQuickAdapter<MixerResp, BaseViewHolder> {
private int index = 0;
private SparseBooleanArray selectedPositions = new SparseBooleanArray();
private final List<Integer> mSelectedPositions = new ArrayList<>();
int type;
public TunerListAdapter(int type) {
super(R.layout.room_rv_item_tuner);
this.type = type;
}
public void setIndex(int index) {
this.index = index;
notifyDataSetChanged();
// setIndex(0); // 默认选择第一个项
}
@Override
protected void convert(BaseViewHolder helper, MixerResp item) {
int position = helper.getLayoutPosition();
RoundedImageView rivPit = helper.getView(R.id.iv_tuner_pic);
RoundedImageView rivPit2 = helper.getView(R.id.iv_tuner_pic2);
View checkbox = helper.getView(R.id.v_checkbox);
TextView tvName = helper.getView(R.id.name);
boolean isSelected = index == helper.getLayoutPosition();
checkbox.setSelected(isSelected);
if (type==1){
tvName.setVisibility(View.GONE);
rivPit.setVisibility(View.VISIBLE);
rivPit.setImageResource(item.getImgUrtl());
rivPit2.setVisibility(View.GONE);
}else {
tvName.setVisibility(View.VISIBLE);
tvName.setText(item.getName());
rivPit.setVisibility(View.GONE);
rivPit2.setVisibility(View.VISIBLE);
rivPit2.setImageResource(item.getImgUrtl());
}
// 判断当前项是否被选中
}
}

View File

@@ -0,0 +1,80 @@
package com.xscm.modulemain.adapter;
import android.widget.TextView;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.CombinedGiftBean;
import com.xscm.moduleutil.color.ThemeableDrawableUtils;
import com.xscm.moduleutil.utils.ColorManager;
import com.xscm.moduleutil.utils.ImageLoader;
import java.util.ArrayList;
import java.util.List;
public class UserGiftWallAdapter extends BaseQuickAdapter<CombinedGiftBean, BaseViewHolder> {
public UserGiftWallAdapter() {
super(R.layout.me_item_user_gift_wall_2);
}
@Override
protected void convert(BaseViewHolder helper, CombinedGiftBean item) {
helper.setText(R.id.tv_gift_name, item.getGift_name());
helper.setText(R.id.tv_gift_price, item.getGift_price());
//
TextView tv_number = helper.getView(R.id.tv_number);
if (item.is_liang()) {
// helper.getView(R.id.cl_iv_down_on).setBackgroundColor(Color.parseColor("#E6E6E6"));
float[] corners = {0f, 4f, 0f, 4f};
ThemeableDrawableUtils.setThemeableRoundedBackground(tv_number, ColorManager.getInstance().getPrimaryColorInt(), corners);
tv_number.setTextColor(ColorManager.getInstance().getButtonColorInt());
// 点亮的礼物显示高亮和送礼物的用户
helper.setText(R.id.tv_number, "x" + item.getTotal_count());
helper.setVisible(R.id.tv_number, true);
// helper.setVisible(R.id.riv_user_head, true);
helper.setVisible(R.id.iv_gift_pic_overlay, false);
ImageLoader.loadGrayscaleImage(mContext, item.getBase_image(),helper.getView(R.id.iv_gift_pic),1);
// 显示送礼物的用户列表
RecyclerView recyclerView = helper.getView(R.id.rv_gift_user_list);
// recyclerView.setLayoutManager(new GridLayoutManager(mContext,2,LinearLayoutManager.HORIZONTAL,false));
// recyclerView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false));
recyclerView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false) {
@Override
public boolean canScrollHorizontally() {
return false; // 禁止水平滑动
}
});
// TopUsersAdapter topUsersAdapter = new TopUsersAdapter(item.getTop_users());
if (item.getTop_users() != null && item.getTop_users().size() > 0) {
List<CombinedGiftBean.TopUsers> displayUsers = new ArrayList<>();
if (item.getTop_users() != null) {
int maxDisplay = Math.min(2, item.getTop_users().size()); // 最多显示2个
for (int i = 0; i < maxDisplay; i++) {
displayUsers.add(item.getTop_users().get(i));
}
}
TopUsersAdapter topUsersAdapter = new TopUsersAdapter(displayUsers);
recyclerView.setAdapter(topUsersAdapter);
}
} else {
// 未点亮的礼物只显示图片、名称和金额,不高亮
helper.setVisible(R.id.tv_number, false);
// helper.setVisible(R.id.riv_user_head, false);
helper.setVisible(R.id.iv_gift_pic_overlay, false);
ImageLoader.loadGrayscaleImage(mContext, item.getBase_image(),helper.getView(R.id.iv_gift_pic),0);
// 隐藏送礼物的用户列表
helper.setVisible(R.id.rv_gift_user_list, false);
// helper.getView(R.id.iv_gift_pic).setAlpha(0.2f);
}
}
}

View File

@@ -0,0 +1,65 @@
package com.xscm.modulemain.adapter;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.utils.ImageUtils;
public class UserPhotoWallAdapter extends BaseQuickAdapter<String, BaseViewHolder> {
private boolean b = false;
private int longClickPos = -1;
public static final String ADD_PHOTO = "ADD_PHOTO";
public UserPhotoWallAdapter() {
super(R.layout.me_item_user_photo_wall);
}
@Override
protected void convert(BaseViewHolder helper, String item) {
if (item.equals(ADD_PHOTO)) {
helper.setVisible(R.id.iv_close, false);
// 显示加号图片
helper.setImageResource(com.xscm.moduleutil.R.id.riv_user_head, com.xscm.moduleutil.R.mipmap.add_img);
} else {
helper.setVisible(R.id.iv_close, true);
ImageUtils.loadCenterCrop(item, helper.getView(com.xscm.moduleutil.R.id.riv_user_head));
}
// if (helper.getAdapterPosition() == 5) {
// helper.setVisible(R.id.riv_user_head, false);
// helper.setVisible(R.id.iv_close, false);
// } else {
// helper.setVisible(R.id.riv_user_head, true);
// if (!"0".equals(item.getId())) {
// ImageUtils.loadCenterCrop(item.getUrl(), helper.getView(R.id.riv_user_head));
// if (longClickPos == helper.getAdapterPosition()) {
// helper.setVisible(R.id.iv_close, true);
// } else {
// helper.setVisible(R.id.iv_close, false);
// }
// } else {
// helper.setImageResource(R.id.riv_user_head, com.qxcm.moduleutil.R.mipmap.add_img);
// helper.setGone(R.id.iv_close, false);
// }
// }
helper.addOnClickListener(R.id.iv_close);
helper.addOnClickListener(R.id.riv_user_head);
helper.addOnLongClickListener(R.id.riv_user_head);
}
public void setDelete(boolean b) {
this.b = b;
notifyDataSetChanged();
}
public void setLongClickPos(int pos) {
this.longClickPos = pos;
notifyDataSetChanged();
}
public boolean getDelete() {
return b;
}
}

View File

@@ -0,0 +1,117 @@
package com.xscm.modulemain.adapter;
import android.util.SparseBooleanArray;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.xscm.modulemain.R;
import com.makeramen.roundedimageview.RoundedImageView;
import com.xscm.moduleutil.bean.room.RoomApplyListBean;
import com.xscm.moduleutil.color.ThemeableDrawableUtils;
import com.xscm.moduleutil.utils.ColorManager;
import com.xscm.moduleutil.utils.ImageUtils;
import java.util.ArrayList;
import java.util.List;
public class WheatFeedingSelectAdapter extends RecyclerView.Adapter<WheatFeedingSelectAdapter.ViewHolder> {
private final List<RoomApplyListBean.Special> mData;
private final List<Integer> mSelectedPositions = new ArrayList<>();
private SparseBooleanArray selectedPositions = new SparseBooleanArray();
public WheatFeedingSelectAdapter(List<RoomApplyListBean.Special> data) {
this.mData = data;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_wheat_feeding_select, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
RoomApplyListBean.Special item = mData.get(position);
boolean isSelected = selectedPositions.get(position, false);
holder.nickname.setText(item.getNickname());
holder.jin_e.setText(item.getRank_value());
ImageUtils.loadHeadCC(item.getAvatar(), holder.userAvatar);
ThemeableDrawableUtils.setThemeableRoundedBackground(holder.tv_bm, ColorManager.getInstance().getPrimaryColorInt(), 65);
holder.tv_bm.setTextColor(ColorManager.getInstance().getButtonColorInt());
holder.checkbox.setSelected(isSelected);
holder.checkbox.setOnClickListener(v -> {
boolean newState = !isSelected;
selectedPositions.put(position, newState);
holder.checkbox.setSelected(newState);
notifyItemChanged(position); // 刷新当前项
if (newState) {
mSelectedPositions.add(position);
} else {
mSelectedPositions.remove(Integer.valueOf(position)); // 修改这里
}
});
holder.tv_bm.setOnClickListener(v -> {
if (onItemClickListener != null) {
onItemClickListener.onTvBmClick(item,position);
}
});
// holder.itemView.setOnClickListener(v -> toggleSelection(position));
}
public interface OnItemClickListener {
void onTvBmClick(RoomApplyListBean.Special item,int position);
}
private OnItemClickListener onItemClickListener;
public void setOnItemClickListener(OnItemClickListener listener) {
this.onItemClickListener = listener;
}
public void toggleSelection(int position) {
if (mSelectedPositions.contains(position)) {
mSelectedPositions.remove(Integer.valueOf(position));
} else {
mSelectedPositions.add(position);
}
notifyItemChanged(position);
}
public List<String> getSelectedItems() {
List<String> selected = new ArrayList<>();
for (int pos : mSelectedPositions) {
selected.add(mData.get(pos).getUser_id());
}
return selected;
}
@Override
public int getItemCount() {
return mData.size();
}
static class ViewHolder extends RecyclerView.ViewHolder {
RoundedImageView userAvatar;
TextView nickname;
TextView jin_e;
TextView tv_bm;
View checkbox ;
public ViewHolder(@NonNull View itemView) {
super(itemView);
userAvatar = itemView.findViewById(R.id.user_avatar);
nickname = itemView.findViewById(R.id.nick_name);
jin_e = itemView.findViewById(R.id.jin_e);
tv_bm = itemView.findViewById(R.id.tv_bm);
checkbox = itemView.findViewById(R.id.v_checkbox);
}
}
}

View File

@@ -0,0 +1,163 @@
package com.xscm.modulemain.adapter;
import android.annotation.SuppressLint;
import android.content.Context;
import android.widget.TextView;
import androidx.core.content.ContextCompat;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.modulemain.R;
import com.xscm.moduleutil.bean.WithdrawalBean;
public class WithdrawalAdapter extends BaseQuickAdapter<WithdrawalBean, BaseViewHolder> {
// 状态常量(替代魔法值,增强可读性)
private static final int STATUS_PENDING = 1; // 待处理
private static final int STATUS_APPROVED = 2; // 已通过
private static final int STATUS_REJECTED = 3; // 已拒绝
private static final int STATUS_PAYING = 4; // 打款中
private static final int STATUS_PAY_FAILED = 5; // 打款失败
private static final int STATUS_PAID = 6; // 已打款
// 固定文本常量(避免硬编码,便于统一修改)
private static final String TEXT_AMOUNT = "提现金额";
private static final String TEXT_FEE = "手续费";
private static final String TEXT_TAX = "个人所得税";
private static final String TEXT_EXPECTED_DEFAULT = "预计到账(个税扣除前)";
private static final String TEXT_EXPECTED_REFUND = "退款金额";
private static final String TEXT_EXPECTED_ACTUAL = "实际到账";
private static final String TEXT_TAX_CALCULATING = "计算中...";
public WithdrawalAdapter() {
super(R.layout.item_withdrawal);
}
@SuppressLint("ResourceType")
@Override
protected void convert(BaseViewHolder helper, WithdrawalBean item) {
// 1. 基础文本设置(所有状态通用)
helper.setText(R.id.tv_amount, TEXT_AMOUNT)
.setText(R.id.tv_fee, TEXT_FEE)
.setText(R.id.tv_tax, TEXT_TAX)
.setText(R.id.tv_fee_value, item != null ? item.getWithdraw_fee() : "")
.setText(R.id.tv_amount_value, item != null ? item.getMoney() : "")
.setText(R.id.tv_expected_value, item != null ? item.getSurplus_money() : "")
.setText(R.id.tv_time, item != null ? item.getCreatetime() : "");
TextView tvStatus = helper.getView(R.id.tv_status);
tvStatus.setText(item != null ? item.getStatus_str() : "");
// 2. 处理item为空的边界情况
if (item == null) {
clearStatusUI(helper);
return;
}
// 3. 根据状态设置UI使用switch替代多层if-else
switch (item.getStatus()) {
case STATUS_PENDING:
setStatusUI(helper,
com.xscm.moduleutil.R.mipmap.dcl, // im_x图标
com.xscm.moduleutil.R.color.color_0DFFB9, // 状态文本颜色
TEXT_EXPECTED_DEFAULT, // 预计到账文本
TEXT_TAX_CALCULATING, // 个税文本
com.xscm.moduleutil.R.color.color_black); // 预计值颜色
break;
case STATUS_APPROVED:
setStatusUI(helper,
com.xscm.moduleutil.R.mipmap.dcl2,
com.xscm.moduleutil.R.color.color_999999,
TEXT_EXPECTED_DEFAULT,
TEXT_TAX_CALCULATING,
com.xscm.moduleutil.R.color.color_black);
break;
case STATUS_REJECTED:
setStatusUI(helper,
com.xscm.moduleutil.R.mipmap.dcl3,
com.xscm.moduleutil.R.color.color_ff8acc,
TEXT_EXPECTED_REFUND,
item.getReceived_tax_amount(),
com.xscm.moduleutil.R.color.color_black);
break;
case STATUS_PAYING:
setStatusUI(helper,
com.xscm.moduleutil.R.mipmap.dcl4,
com.xscm.moduleutil.R.color.color_68A5FF,
TEXT_EXPECTED_DEFAULT,
TEXT_TAX_CALCULATING,
com.xscm.moduleutil.R.color.color_black);
break;
case STATUS_PAY_FAILED:
setStatusUI(helper,
com.xscm.moduleutil.R.mipmap.dcl5,
com.xscm.moduleutil.R.color.color_ff8acc,
TEXT_EXPECTED_REFUND,
item.getReceived_tax_amount(),
com.xscm.moduleutil.R.color.color_black);
break;
case STATUS_PAID:
setStatusUI(helper,
com.xscm.moduleutil.R.mipmap.dcl6,
com.xscm.moduleutil.R.color.color_999999,
TEXT_EXPECTED_ACTUAL,
item.getReceived_tax_amount(),
com.xscm.moduleutil.R.color.color_2ADB88);
break;
default:
// 未知状态处理
setStatusUI(helper,
0, // 空图标
com.xscm.moduleutil.R.color.color_999999,
"", "", com.xscm.moduleutil.R.color.color_black);
tvStatus.setText("未知状态");
break;
}
}
/**
* 封装状态相关UI设置消除重复代码
*
* @param helper ViewHolder
* @param imXRes im_x的图标资源
* @param statusTextColor 状态文本颜色
* @param expectedText 预计到账文本
* @param taxValue 个税文本
* @param expectedValueColor 预计值文本颜色
*/
private void setStatusUI(BaseViewHolder helper, int imXRes, int statusTextColor,
String expectedText, String taxValue, int expectedValueColor) {
Context context = helper.itemView.getContext(); // 从itemView获取上下文更可靠
// 设置im_x图标
if (imXRes != 0) {
helper.setBackgroundRes(R.id.im_x, imXRes);
}
// 设置状态文本颜色使用ContextCompat兼容低版本
TextView tvStatus = helper.getView(R.id.tv_status);
tvStatus.setTextColor(ContextCompat.getColor(context, statusTextColor));
// 设置其他文本
helper.setText(R.id.tv_expected, expectedText)
.setText(R.id.tv_tax_value, taxValue)
.setTextColor(R.id.tv_expected_value, ContextCompat.getColor(context, expectedValueColor));
}
/**
* 清空状态相关UI处理item为null的情况
*/
private void clearStatusUI(BaseViewHolder helper) {
helper.setBackgroundRes(R.id.im_x, 0)
.setText(R.id.tv_expected, "")
.setText(R.id.tv_tax_value, "")
.setTextColor(R.id.tv_expected_value, ContextCompat.getColor(helper.itemView.getContext(), com.xscm.moduleutil.R.color.color_black));
TextView tvStatus = helper.getView(R.id.tv_status);
tvStatus.setTextColor(ContextCompat.getColor(helper.itemView.getContext(), com.xscm.moduleutil.R.color.color_999999));
}
}