2023-03-10

2023-03-09  本文已影响0人  皓皓amous

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;
}

}

上一篇 下一篇

猜你喜欢

热点阅读