package com.bwie.shopcar.adapter;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import com.bwie.shopcar.R;
import com.bwie.shopcar.bean.News;
import java.util.List;
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.OneHolder> {
private Context context;
private List<News.DataBean> list;
public MyAdapter(Context context, List<News.DataBean> list) {
this.context = context;
this.list = list;
}
@NonNull
@Override
public OneHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.item, null);
OneHolder holder = new OneHolder(view);
return holder;
}
@Override
public void onBindViewHolder(@NonNull final OneHolder holder, final int position) {
//全选
holder.cb_02.setChecked(list.get(position).isOutchecked());
holder.cb_02.setText(list.get(position).getSellerName());
LinearLayoutManager manager = new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false);
holder.recycleview01.setLayoutManager(manager);
InnerAdapter innerAdapter = new InnerAdapter(context, list.get(position).getList());
holder.recycleview01.setAdapter(innerAdapter);
holder.cb_02.setOnClickListener(null);
//商家选中控制里面的子条目
holder.cb_02.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean ischecked = holder.cb_02.isChecked();//定义商家的选中状态
list.get(position).setOutchecked(ischecked);
if (ischecked){
for (int i = 0; i < list.get(holder.getLayoutPosition()).getList().size(); i++) {
list.get(holder.getLayoutPosition()).getList().get(i).setInnerchecked(true);
}
}else {
for (int i = 0; i < list.get(holder.getLayoutPosition()).getList().size(); i++) {
list.get(holder.getLayoutPosition()).getList().get(i).setInnerchecked(false);
}
}
onclickchangelisten.onitemchecked(holder.getLayoutPosition(),ischecked);
}
});
//获取里层条目的选中状态
innerAdapter.setOnclickchangelisten(new InnerAdapter.onclickchangelisten() {
@Override
public void onchecked(int layoutPosition, boolean checked) {
//定义一个默认值
boolean b=true;
for (int i = 0; i < list.get(holder.getLayoutPosition()).getList().size(); i++) {
boolean innerchecked = list.get(holder.getLayoutPosition()).getList().get(i).isInnerchecked();
b=(b&innerchecked);
}
//设置给商家
holder.cb_02.setChecked(b);
//设置给外层条目
list.get(position).setOutchecked(b);
onclickchangelisten.onchecked(holder.getLayoutPosition(),checked);
}
});
}
@Override
public int getItemCount() {
return list.size();
}
//创建视图
class OneHolder extends RecyclerView.ViewHolder{
private final CheckBox cb_02;
private final RecyclerView recycleview01;
public OneHolder(View itemView) {
super(itemView);
cb_02 = itemView.findViewById(R.id.cb_02);
recycleview01 = itemView.findViewById(R.id.recycleview01);
}
}
private onclickchangelisten onclickchangelisten;
//向外提供方法
public void setOnclickchangelisten(MyAdapter.onclickchangelisten onclickchangelisten) {
this.onclickchangelisten = onclickchangelisten;
}
//全选的商家回调方法
public interface onclickchangelisten{
void onchecked(int layoutPosition,boolean checked);
void onitemchecked(int layoutPosition,boolean ischecked);
}
}