activity
package com.example.shop; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.TextView; import com.google.gson.Gson; import java.io.IOException; import java.util.List; import adapter.AllCheckBoxLisenter; import adapter.Myadapter1; import butterknife.BindView; import butterknife.ButterKnife; import okhttp3.Call; import okhttp3.Callback; import okhttp3.Response; public class MainActivity extends AppCompatActivity implements AllCheckBoxLisenter { @BindView(R.id.shop_recy) RecyclerView shopRecy; @BindView(R.id.shop_check) CheckBox shopCheck; @BindView(R.id.shop_button) Button shopButton; @BindView(R.id.shop_text) TextView shopText; private String url="https://www.zhaoapi.cn/product/getCarts?uid=71"; Myadapter1 myadapter1; List<ShopBean.DataBean> data; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); initData(); isCK(); } private void initData() { HttpUtil.getinstance().getOK(url, new Callback() { @Override public void onFailure(Call call, IOException e) { e.getMessage().toString(); } @Override public void onResponse(final Call call, Response response) throws IOException { final String msg = response.body().string(); runOnUiThread(new Runnable() { @Override public void run() { Gson gson=new Gson(); ShopBean shopBean = gson.fromJson(msg, ShopBean.class); data = shopBean.getData(); myadapter1=new Myadapter1(MainActivity.this,data); shopRecy.setLayoutManager(new LinearLayoutManager(MainActivity.this)); shopRecy.setAdapter(myadapter1); myadapter1.setAllCheckBoxLisenter(MainActivity.this); } }); } }); } public void isCK(){ shopCheck.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (shopCheck.isChecked()){ for(int i=0;i<data.size();i++){ data.get(i).setSelect(true); for (int i1=0;i1<data.get(i).getList().size();i1++){ data.get(i).getList().get(i1).setSelect(true); } } }else { for(int i=0;i<data.size();i++) { data.get(i).setSelect(false); for (int i1 = 0; i1 < data.get(i).getList().size(); i1++) { data.get(i).getList().get(i1).setSelect(false); } } } myadapter1.notifyDataSetChanged(); getPrices(); } }); } @Override public void notifyAllCheckboxStatus() { StringBuilder stringBuilder = new StringBuilder(); if (myadapter1 != null) { for (int i = 0; i < myadapter1.getCartList().size(); i++) { stringBuilder.append(myadapter1.getCartList().get(i).isSelect()); for (int i1 = 0; i1 < myadapter1.getCartList().get(i).getList().size(); i1++) { stringBuilder.append(myadapter1.getCartList().get(i).getList().get(i1).isSelect()); } } } if (stringBuilder.toString().contains("false")) { shopCheck.setChecked(false); // totalPrice = 0; } else { shopCheck.setChecked(true); } getPrices(); } /** * 总价 */ public void getPrices(){ int dataPrice=0; for (int i=0;i<myadapter1.getCartList().size();i++){ for(int i1=0;i1<myadapter1.getCartList().get(i).getList().size();i1++){ if (myadapter1.getCartList().get(i).getList().get(i1).isSelect()){ ShopBean.DataBean.ListBean listBean = myadapter1.getCartList().get(i).getList().get(i1); dataPrice+=listBean.getBargainPrice()*listBean.getTotalNum(); } } } shopText.setText("总价是: ¥"+dataPrice); } }
适配器1
package 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 android.widget.TextView; import com.example.shop.R; import com.example.shop.ShopBean; import java.util.List; public class Myadapter1 extends RecyclerView.Adapter<Myadapter1.Myholder> implements CartCheckLisenter{ private Context context; private List<ShopBean.DataBean> list; private AllCheckBoxLisenter allCheckBoxLisenter; public Myadapter1(Context context, List<ShopBean.DataBean> list) { this.context = context; this.list = list; } //暴露给购物车页面进行回调 public void setAllCheckBoxLisenter(AllCheckBoxLisenter allCheckBoxLisenter){ this.allCheckBoxLisenter=allCheckBoxLisenter; } @NonNull @Override public Myholder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { View view = LayoutInflater.from(context).inflate(R.layout.mybase1,viewGroup,false); Myholder myholder=new Myholder(view); return myholder; } @Override public void onBindViewHolder(@NonNull final Myholder myholder, final int i) { final ShopBean.DataBean bean = list.get(i); myholder.textView.setText(bean.getSellerName()); myholder.recyclerView.setLayoutManager(new LinearLayoutManager(context)); Myadapter2 myadapter2=new Myadapter2(context,bean.getList()); myholder.recyclerView.setAdapter(myadapter2); //根据bean对象的ischecked属性,动态设置选中状态 myholder.checkBox.setChecked(bean.isSelect()); myadapter2.setCartCheckLisenter(this); for (int m=0;m<bean.getList().size();m++){