修改名称。
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user