public class ListAdapter extends RecyclerView.Adapter<ListAdapter.ViewHolder> {
private List<ListBean> list;
private Context context;
private ShopListCallBack mlisenterShop;
private int num;
public ListAdapter(List<ListBean> list, Context context) {
this.list = list;
this.context = context;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(context).inflate(R.layout.list_item, viewGroup, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull final ViewHolder viewHolder, final int i) {
String url = mList.get(i).getImages().split("\\|")[0].replace("https", "http");
RequestOptions placeholder = new RequestOptions().placeholder(R.drawable.ic_launcher_background);
Glide.with(context).load(list.get(i).getImages()).into(viewHolder.image);
viewHolder.text1.setText(list.get(i).getTitle());
viewHolder.text2.setText("¥:"+list.get(i).getPrice());
//根据状态,改变勾选
viewHolder.boxed.setChecked(list.get(i).isCheck());
//根据商品的跟商家的有所不同,商品添加了选中改变的监听
viewHolder.boxed.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
//优先改变自己的状态
list.get(i).setCheck(isChecked);
if (mlisenterShop!=null){
mlisenterShop.callBack();
}
}
});
}
@Override
public int getItemCount() {
return list.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
private final TextView text1, text2;
private final CheckBox boxed;
private final ImageView image;
private final AdderView adder_view;
public ViewHolder(@NonNull View itemView) {
super(itemView);
boxed = itemView.findViewById(R.id.box_list);
image = itemView.findViewById(R.id.image_list);
text1 = itemView.findViewById(R.id.text1_list);
text2 = itemView.findViewById(R.id.text2_list);
adder_view = itemView.findViewById(R.id.adder_view);
}
}
//在我们子商品的adapter中,修改子商品的全选和反选
public void checkOrRemoveAll(boolean ischeckAll) {
for (ListBean listBean : list) {
listBean.setCheck(ischeckAll);
}
notifyDataSetChanged();
}
public void setLisenter(ShopListCallBack shopCallBack){
this.mlisenterShop =shopCallBack;
}
public interface ShopListCallBack{
void callBack();
}
}