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 { private boolean isControlVisible = false; private List selectedPositions = new ArrayList<>(); // 保存选中的 position // private SparseBooleanArray selectedPositions = new SparseBooleanArray(); public AlbumPhotoAdapter(List 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 getImageList(){ List stringList=new ArrayList<>(); for (AlbumBean.ImageList item : getData()) { if (item.getItemType() == 2) { stringList.add(item.getImage()); } } return stringList; } public List getSelectedItems() { List selectedItems = new ArrayList<>(); for (AlbumBean.ImageList item : getData()) { if (item.isSelected()) { selectedItems.add(item); } } return selectedItems; } public String getSelectedPhotoIdsAsString() { List selectedPhotos = getSelectedItems(); List 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); } } }