public class GroupAssistantAdapter extends RecyclerView.Adapter<GroupAssistantAdapter.MyHolder> {
private String TAG = "GroupAssistantAdapter";
private RecyclerView mRecyclerView;
private Context mContext;
private List<Object> personData;
public ImageView addImage;
private RequestOptions options;
private OnSetAddPersonClick onSetAddPersonClick;
private DeteleSeleMember deteleSelePerson;
public interface OnSetAddPersonClick {
void setAddMemberClick(View v, int position);
}
public interface DeteleSeleMember {
void detelePerson(int posoition);
}
public GroupAssistantAdapter(List<Object> data, Context mContext) {
this.personData = data;
this.mContext = mContext;
}
public int deleMemberData(int position) {
personData.remove(position);
notifyDataSetChanged();
if (personData != null) {
return personData.size();
}
return 0;
}
public enum layoutStyle {
NORMAL,
FOOT
}
@Override
public MyHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if (layoutStyle.FOOT.ordinal() == viewType) {
return new MyHolder(LayoutInflater.from(mContext).inflate(R.layout.item_assistfoot_layout, parent, false));
} else {
return new MyHolder(LayoutInflater.from(mContext).inflate(R.layout.item_assistlist_layout, parent, false));
}
}
@Override
public void onBindViewHolder(MyHolder holder, int position) {
if (layoutStyle.FOOT.ordinal() == getItemViewType(position)) {
addImage = holder.itemView.findViewById(R.id.imagefoot);
addImage.setOnClickListener(v -> {
if (onSetAddPersonClick != null) {
onSetAddPersonClick.setAddMemberClick(v, position);
}
});
} else if (layoutStyle.NORMAL.ordinal() == getItemViewType(position)) {
ImageView image = (ImageView) holder.itemView.findViewById(R.id.image);
TextView txt = (TextView) holder.itemView.findViewById(R.id.txt);
ImageView deleImage = (ImageView) holder.itemView.findViewById(R.id.delete);
RoundedCorners roundedCorners = new RoundedCorners(DensityUtil.dp2px(mContext, 4));
options = RequestOptions.bitmapTransform(roundedCorners);
if (personData.get(position) instanceof Contact) {
String name = ((Contact) personData.get(position)).getName();
String avatarUrl = ((Contact) personData.get(position)).getAvatar();
setUserImgae(image, txt, name, avatarUrl);
} else if (personData.get(position) instanceof EnterpriseUserInfo) {
String name = ((EnterpriseUserInfo) personData.get(position)).getEnName();
String avatarUrl = ((EnterpriseUserInfo) personData.get(position)).getUserHeadUrl();
setUserImgae(image, txt, name, avatarUrl);
}
deleImage.setOnClickListener(v -> {
if (deteleSelePerson != null) {
deteleSelePerson.detelePerson(position);
}
});
}
}
private void setUserImgae(ImageView image, TextView txt, String name, String avatarUrl) {
RequestOptions requestOptions = new RequestOptions().placeholder(R.mipmap.icon_head_male_small)
.bitmapTransform(new RoundedCorners(DensityUtil.dp2px(mContext, 4)));
File file = new File(avatarUrl);
Glide.with(mContext)
.load(file)
.apply(requestOptions)
.into(image);
txt.setText(name);
}
@Override
public int getItemCount() {
return personData.size() + 1;
}
@Override
public int getItemViewType(int position) {
if ((getItemCount() - 1) == position) {
return layoutStyle.FOOT.ordinal();
} else {
return layoutStyle.NORMAL.ordinal();
}
}
public static class MyHolder extends RecyclerView.ViewHolder {
public MyHolder(View itemView) {
super(itemView);
}
}
public void setAddListen(OnSetAddPersonClick click) {
this.onSetAddPersonClick = click;
}
public void setDeteleMember(DeteleSeleMember deteleSelePerson) {
this.deteleSelePerson = deteleSelePerson;
}
}
网友评论