首先在Activity中进行全选 价格联动
public class MainActivity extends BaseActivity implements IMainView {
private RecyclerView recy;
private List<ShowBean.ResultBean> result;
private HomePresenter homePresenter;
private CheckBox check;
private MyAdapterone myAdapterone;
private TextView sum;
@Override
int Layout() {
return R.layout.activity_main;
}
@Override
void initView() {
homePresenter = new HomePresenter();
homePresenter.attachView(this);
homePresenter.ShowPresneter(Constant.show);
recy = (RecyclerView) findViewById(R.id.recy);
check = (CheckBox) findViewById(R.id.check);
sum = (TextView) findViewById(R.id.sum);
LinearLayoutManager linearLayoutManager=new LinearLayoutManager(this);
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recy.setLayoutManager(linearLayoutManager);
//全选
check.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (check.isChecked()){
for (int i = 0; i <result.size() ; i++) {
result.get(i).setFulei(true);
for (int j = 0; j < result.get(i).getShoppingCartList().size(); j++) {
result.get(i).getShoppingCartList().get(j).setZilei(true);
}
}
}else {
for (int i = 0; i <result.size() ; i++) {
result.get(i).setFulei(false);
for (int j = 0; j < result.get(i).getShoppingCartList().size(); j++) {
result.get(i).getShoppingCartList().get(j).setZilei(false);
}
}
}
myAdapterone.notifyDataSetChanged();
}
});
}
@Override
void initData() {
}
@Override
public void Success(String data) {
Gson gson = new Gson();
ShowBean showBean = gson.fromJson(data, ShowBean.class);
result = showBean.getResult();
myAdapterone = new MyAdapterone(result,this);
myAdapterone.one(new MyAdapterone.CallBackD() {
@Override
public void dianone() {
boolean pp=true;
int b=0;
for (int i = 0; i <result.size() ; i++) {
boolean fulei = result.get(i).isFulei();
for (int j = 0; j <result.get(i).getShoppingCartList().size() ; j++) {
boolean zilei = result.get(i).getShoppingCartList().get(j).getZilei();
int price = result.get(i).getShoppingCartList().get(j).getPrice();
int onecount = result.get(i).getShoppingCartList().get(j).getOnecount();
pp=pp & fulei & zilei;
if (zilei){
b+=price * onecount;
}
}
}
sum.setText(b+"");
check.setChecked(pp);
}
});
recy.setAdapter(myAdapterone);
}
@Override
protected void onDestroy() {
super.onDestroy();
homePresenter.detachView();
}
}
自定义加减器中进行接口回调
public class MyView extends LinearLayout {
private int a=1;
private final TextView tv;
private Call ca;
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
View inflate = LayoutInflater.from(context).inflate(R.layout.myview, this);
Button jia = inflate.findViewById(R.id.jia);
Button jian = inflate.findViewById(R.id.jian);
tv = inflate.findViewById(R.id.myview_tv);
jia.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
a++;
tv.setText(a+"");
ca.aaa(a);
}
});
jian.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (a>0){
a--;
tv.setText(a+"");
ca.aaa(a);
}
}
});
}
public void setText(int i){
a=i;
tv.setText(i+"");
}
public interface Call{
void aaa(int e);
}
public void callB(Call call){
this.ca=call;
}
}
一级适配器中进行回调
public class ShoppingAdapter extends RecyclerView.Adapter {
private List<ShoppingBean.ResultBean> result;
private Context context;
private ShoppingAdapter2 shoppingAdapter2;
private CallBackD caone;
public ShoppingAdapter(List<ShoppingBean.ResultBean> result, Context context) {
this.result = result;
this.context = context;
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View inflate = LayoutInflater.from(context).inflate(R.layout.shoppingitem, null);
Viewholder1 viewholder1 = new Viewholder1(inflate);
return viewholder1;
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, final int i) {
final Viewholder1 viewholder1 = (Viewholder1) viewHolder;
viewholder1.shopping_tv.setText(result.get(i).getCategoryName());
viewholder1.item_check.setChecked(result.get(i).isFulei());
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context);
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
viewholder1.shopping_recy2.setLayoutManager(linearLayoutManager);
shoppingAdapter2 = new ShoppingAdapter2(result.get(i).getShoppingCartList(), context);
viewholder1.shopping_recy2.setAdapter(shoppingAdapter2);
viewholder1.item_check.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (viewholder1.item_check.isChecked()) {
for (int j = 0; j < result.get(i).getShoppingCartList().size(); j++) {
result.get(i).getShoppingCartList().get(j).setZilei(true);
}
} else {
for (int j = 0; j < result.get(i).getShoppingCartList().size(); j++) {
result.get(i).getShoppingCartList().get(j).setZilei(false);
}
}
shoppingAdapter2.notifyDataSetChanged();
}
});
shoppingAdapter2.CallBack(new ShoppingAdapter2.CallBackData() {
@Override
public void dian() {
boolean zx=true;
for (int j = 0; j <result.get(i).getShoppingCartList().size() ; j++) {
boolean zilei = result.get(i).getShoppingCartList().get(j).isZilei();
zx=zx &zilei;
}
viewholder1.item_check.setChecked(zx);
caone.dianone();
}
});
}
@Override
public int getItemCount() {
return result.size();
}
public interface CallBackD{
void dianone();
}
public void one(CallBackD callBackD){
this.caone=callBackD;
}
public class Viewholder1 extends RecyclerView.ViewHolder {
private final TextView shopping_tv;
private final RecyclerView shopping_recy2;
private final CheckBox item_check;
public Viewholder1(@NonNull View itemView) {
super(itemView);
shopping_tv = itemView.findViewById(R.id.shopping_tv);
shopping_recy2 = itemView.findViewById(R.id.shopping_recy2);
item_check = itemView.findViewById(R.id.item_check);
}
}
}
二级适配器的接口回调
public class ShoppingAdapter2 extends RecyclerView.Adapter {
private List<ShoppingBean.ResultBean.ShoppingCartListBean> shoppingCartList;
private Context context;
private CallBackData ji;
public ShoppingAdapter2(List<ShoppingBean.ResultBean.ShoppingCartListBean> shoppingCartList, Context context) {
this.shoppingCartList = shoppingCartList;
this.context = context;
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View inflate = LayoutInflater.from(context).inflate(R.layout.shoppingitem2, null);
Viewholder1 viewholder1 = new Viewholder1(inflate);
return viewholder1;
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, final int i) {
final Viewholder1 viewholder1 = (Viewholder1) viewHolder;
viewholder1.item2_tv.setText(shoppingCartList.get(i).getCommodityName());
viewholder1.item2_tv2.setText(shoppingCartList.get(i).getPrice() + "");
viewholder1.item2_check.setChecked(shoppingCartList.get(i).isZilei());
Glide.with(context).load(shoppingCartList.get(i).getPic()).into(viewholder1.item2_img);
viewholder1.myview.callb(new MyView.Call() {
@Override
public void aaa(int e) {
shoppingCartList.get(i).setOnecount(e);
ji.dian();
}
});
viewholder1.item2_check.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (viewholder1.item2_check.isChecked()) {
shoppingCartList.get(i).setZilei(true);
ji.dian();
} else {
shoppingCartList.get(i).setZilei(false);
ji.dian();
}
}
});
viewholder1.item2_check.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ji.dian();
}
});
}
@Override
public int getItemCount() {
return shoppingCartList.size();
}
public interface CallBackData{
void dian();
}
public void CallBack(CallBackData callBackData){
this.ji=callBackData;
}
public class Viewholder1 extends RecyclerView.ViewHolder {
private final TextView item2_tv;
private final TextView item2_tv2;
private final ImageView item2_img;
private final CheckBox item2_check;
private final MyView myview;
public Viewholder1(@NonNull View itemView) {
super(itemView);
item2_tv = itemView.findViewById(R.id.item2_tv);
item2_tv2 = itemView.findViewById(R.id.item2_tv2);
item2_img = itemView.findViewById(R.id.item2_img);
item2_check = itemView.findViewById(R.id.item2_check);
myview = itemView.findViewById(R.id.myview);
}
}
}