2025-10-28 16:56:13 +08:00
|
|
|
package com.xscm.modulemain.adapter;
|
2025-10-20 10:16:44 +08:00
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
|
2025-10-28 16:56:13 +08:00
|
|
|
import com.xscm.modulemain.R;
|
2025-10-20 10:16:44 +08:00
|
|
|
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 {
|
2025-10-24 17:52:11 +08:00
|
|
|
mSelectedPositions.remove(Integer.valueOf(position)); // 修改这里
|
2025-10-20 10:16:44 +08:00
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|