适配器
public class OneAdapter extends RecyclerView .Adapter<OneAdapter.Holder>{
private List<ShopcartBean.OrderDataBean> list = new ArrayList<>();
private Context mContext;
public OneAdapter(List<ShopcartBean.OrderDataBean> list, Context mContext) {
this.list = list;
this.mContext = mContext;
}
@NonNull
@Override
public Holder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View inflate = View.inflate(mContext, R.layout.one_item, null);
Holder holder = new Holder(inflate);
return holder;
}
@Override
public void onBindViewHolder(@NonNull Holder holder, int position) {
holder.cartcbname.setText(list.get(position).getShopName()+"");
ChidAdapter chidAdapter = new ChidAdapter(list.get(position).getCartlist(), position);
holder.cartrecy.setAdapter(chidAdapter);
//是否选中
holder.cartcbname.setChecked(isprantClick(position));
//点击
holder.cartcbname.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (click!=null){
click.setposition(position);
}
}
});
}
@Override
public int getItemCount() {
return list.size();
}
public class Holder extends RecyclerView.ViewHolder {
private final CheckBox cartcbname;
private final RecyclerView cartrecy;
public Holder(@NonNull View itemView) {
super(itemView);
cartrecy = itemView.findViewById(R.id.cartrecy);
cartcbname =itemView.findViewById(R.id.cartcbname);
cartrecy.setLayoutManager(new LinearLayoutManager(mContext));
}
}
//---------------------------------具体商品-------------------------------------
class ChidAdapter extends RecyclerView.Adapter<ChidAdapter.ChidHolder>{
private List<ShopcartBean.OrderDataBean.CartlistBean> chidlist=new ArrayList<>();
private int bigIndex;
public ChidAdapter(List<ShopcartBean.OrderDataBean.CartlistBean> chidlist, int bigIndex) {
this.chidlist = chidlist;
this.bigIndex = bigIndex;
}
@NonNull
@Override
public ChidHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View inflate = View.inflate(mContext, R.layout.tow_item, null);
ChidHolder chidHolder = new ChidHolder(inflate);
return chidHolder;
}
@Override
public void onBindViewHolder(@NonNull ChidHolder holder, int position) {
NetGlide.ImageGlide(chidlist.get(position).getDefaultPic(),holder.cartimage);
holder.cartname.setText(chidlist.get(position).getProductName()+"");
holder.cartcolcor.setText("颜色:"+chidlist.get(position).getColor()+"");
holder.cartprice.setText("¥"+chidlist.get(position).getPrice()+"");
holder.cartcb.setChecked(chidlist.get(position).isStuas());
holder.addView.setNumber(chidlist.get(position).getCount());
holder.cartcb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (click!=null){
click.setchildposition(bigIndex,position);
}
}
});
//addview
holder.addView.setCallBack(new AddView.AddCallBack() {
@Override
public void setCount(int number) {
if (click!=null){
click.setcountdposition(bigIndex,position,number);
}
}
});
}
@Override
public int getItemCount() {
return chidlist.size();
}
public class ChidHolder extends RecyclerView.ViewHolder {
private final CheckBox cartcb;
private final ImageView cartimage;
private final TextView cartname;
private final TextView cartcolcor;
private final TextView cartprice;
private final AddView addView;
public ChidHolder(@NonNull View itemView) {
super(itemView);
cartcb = itemView.findViewById(R.id.cartcb);
cartimage = itemView.findViewById(R.id.cartimage);
cartname = itemView.findViewById(R.id.cartname);
cartcolcor = itemView.findViewById(R.id.cartcolcor);
cartprice = itemView.findViewById(R.id.cartprice);
addView = itemView.findViewById(R.id.addview);
}
}
}
//=====================点击接口回调
public setonClick click;
public void itemClick(setonClick setonClick){
click=setonClick;
}
public interface setonClick{
void setposition(int bigIndex);
void setchildposition(int bigIndex,int childbigIndex);
void setcountdposition(int bigIndex,int childbigIndex,int countIndex );
}
//==================逻辑============
//是否选中商品
public boolean isprantClick(int bigIndex){
boolean prant=true;
List<ShopcartBean.OrderDataBean.CartlistBean> cartlist = list.get(bigIndex).getCartlist();
for (int i=0;i<cartlist.size();i++){
if (!cartlist.get(i).isStuas()){
prant=false;
return prant;
}
}
return prant;
}
//是否选中具体商品
public void setPreantClick(int bigIndex,boolean isStatus){
for (int i=0;i<list.size();i++){
List<ShopcartBean.OrderDataBean.CartlistBean> cartlist = list.get(bigIndex).getCartlist();
for (int j=0;j<cartlist.size();j++){
cartlist.get(j).setStuas(isStatus);
}
}
int shu = allCuont();
int price = allPrice();
SharedPreferences count = App.mContext.getSharedPreferences("count", Context.MODE_PRIVATE);
count.edit().putInt("shu",shu)
.putInt("price",price)
.commit();
}
//选中具体商品 是否让商家也选中
public void setChildClick(int bigIndex,int childbigIndex,boolean isStatus){
list.get(bigIndex).getCartlist().get(childbigIndex).setStuas(isStatus);
int shu = allCuont();
int price = allPrice();
SharedPreferences count = App.mContext.getSharedPreferences("child", Context.MODE_PRIVATE);
count.edit().putInt("shu",shu)
.putInt("price",price)
.commit();
}
//点击是否全部选中
public boolean AllClick(){
boolean allPreant=true;
for (int i =0;i<list.size();i++){
List<ShopcartBean.OrderDataBean.CartlistBean> cartlist = list.get(i).getCartlist();
for (int j=0;j<cartlist.size();j++){
if (!cartlist.get(j).isStuas()){
allPreant=false;
return allPreant;
}
}
}
return allPreant;
}
//点击全部选中是否商家 和具体商品全体选中
public void serAllClick(boolean isStatus){
for (int i=0;i<list.size();i++){
List<ShopcartBean.OrderDataBean.CartlistBean> cartlist = list.get(i).getCartlist();
for (int j=0;j<cartlist.size();j++){
cartlist.get(j).setStuas(isStatus);
}
}
}
//计算总价格
public int allPrice(){
int allprice=0;
for (int i=0;i<list.size();i++){
List<ShopcartBean.OrderDataBean.CartlistBean> cartlist = list.get(i).getCartlist();
for (int j=0;j<cartlist.size();j++){
if (cartlist.get(j).isStuas()){
allprice+=cartlist.get(j).getPrice()*cartlist.get(j).getCount();
}
}
}
return allprice;
}
//计算数量
public int allCuont(){
int count=0;
for (int i=0;i<list.size();i++){
List<ShopcartBean.OrderDataBean.CartlistBean> cartlist = list.get(i).getCartlist();
for (int j=0;j<cartlist.size();j++){
if (cartlist.get(j).isStuas()){
count+=cartlist.get(j).getCount();
}
}
}
return count;
}
## Activity中
public class ShpingActivity extends BaseActivity implements View .OnClickListener{
private RecyclerView onerecy;
private OneAdapter oneAdapter;
private CheckBox allcb;
private TextView allprice;
private TextView allcount;
private List<ShopcartBean.OrderDataBean> list = new ArrayList<>();
@Override
protected void initData() {
//购物车
mPresneter.onSuccess(BaseUrl.ShpingUrl, ShopcartBean.class);
}
@Override
protected BasePresenter initPresenter() {
return new IPresenterImpl();
}
@Override
protected void initViews() {
onerecy = findViewById(R.id.onerecy);
onerecy.setLayoutManager(new LinearLayoutManager(this));
allcb = findViewById(R.id.allcb);
allprice = findViewById(R.id.allprice);
allcount = findViewById(R.id.allcount);
allcb.setOnClickListener(this);
}
@Override
protected int initLaout() {
return R.layout.activity_shping;
}
@Override
public void onSuccess(Object o) {
if (o instanceof ShopcartBean){
oneAdapter = new OneAdapter(((ShopcartBean) o).getOrderData(), this);
onerecy.setAdapter(oneAdapter);
oneAdapter.notifyDataSetChanged();
oneAdapter.itemClick(new OneAdapter.setonClick() {
@Override
public void setposition(int bigIndex) {
boolean b = oneAdapter.isprantClick(bigIndex);
oneAdapter.setPreantClick(bigIndex,!b);
oneAdapter.notifyDataSetChanged();
SharedPreferences count = getSharedPreferences("count", MODE_PRIVATE);
int shu = count.getInt("shu", 0);
int price = count.getInt("price", 0);
allprice.setText(price+"");
allcount.setText(shu+"");
}
@Override
public void setchildposition(int bigIndex, int childbigIndex) {
boolean stuas = ((ShopcartBean) o).getOrderData().get(bigIndex).getCartlist().get(childbigIndex).isStuas();
oneAdapter.setChildClick(bigIndex,childbigIndex,!stuas);
oneAdapter.notifyDataSetChanged();
SharedPreferences count = getSharedPreferences("child", MODE_PRIVATE);
int shu = count.getInt("shu", 0);
int price = count.getInt("price", 0);
allprice.setText(price+"");
allcount.setText(shu+"");
}
@Override
public void setcountdposition(int bigIndex, int childbigIndex, int countIndex) {
((ShopcartBean) o).getOrderData().get(bigIndex).getCartlist().get(childbigIndex).setCount(countIndex);
oneAdapter.notifyDataSetChanged();
allcount();
}
});
}
}
@Override
public void onError(String error) {
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.allcb:
boolean b = oneAdapter.AllClick();
oneAdapter.serAllClick(!b);
oneAdapter.notifyDataSetChanged();
allcount.setText(oneAdapter.allCuont()+"");
allprice.setText(oneAdapter.allPrice()+"");
break;
}
}
public void allcount(){
boolean b = oneAdapter.AllClick();
oneAdapter.serAllClick(b);
allprice.setText(oneAdapter.allPrice()+"");
allcount.setText(oneAdapter.allCuont()+"");
}