购物车

适配器

第一个页面的适配器MyAdapter
package com.example.a1.app3.apapter;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.bumptech.glide.Glide;
import com.example.a1.app3.R;
import com.example.a1.app3.entity.AddShop;
import com.example.a1.app3.entity.User;
import com.example.a1.app3.entity.UserShow;

import java.nio.FloatBuffer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private Context context;
private List<User.DataBean> list;

public MyAdapter(Context context) {
    this.context = context;
    this.list=new ArrayList<>();
}

public void setList(List<User.DataBean> list) {
    if (list!=null){
        this.list = list;
    }
    notifyDataSetChanged();
}
@NonNull
@Override
public MyAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    View view=LayoutInflater.from(context).inflate(R.layout.linear,viewGroup,false);
    ViewHolder viewHolder = new ViewHolder(view);
    return viewHolder;
}

@Override
public void onBindViewHolder(@NonNull MyAdapter.ViewHolder viewHolder, final int position) {
    User.DataBean dataBean = list.get(position);
    viewHolder.name.setText(list.get(position).getSubhead());
    viewHolder.price.setText(list.get(position).getPrice()+"");
    String[]  images = dataBean.getImages().split("\\|");
    Glide.with(context).load(images[0]).into(viewHolder.image);

    viewHolder.btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            getpidcllback.getpid(list.get(position).getPid());
        }
    });
}

@Override
public int getItemCount() {
    return list.size();
}



public class ViewHolder extends RecyclerView.ViewHolder {
    private TextView name,price;
    private ImageView image;
    private Button btn;
    public ViewHolder(@NonNull View itemView) {
        super(itemView);
        image=itemView.findViewById(R.id.image);
        name=itemView.findViewById(R.id.name);
        price=itemView.findViewById(R.id.price);
        btn = itemView.findViewById(R.id.btn);
    }
}



private getpidCllback getpidcllback;

public void setGetpidcllback(getpidCllback getpidcllback) {
    this.getpidcllback = getpidcllback;
}

public interface getpidCllback{
    void getpid(int pid);
}

}

二级列表
CartAdapter 适配器
package com.example.a1.app3.apapter;

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.a1.app3.R;
import com.example.a1.app3.entity.User;
import com.example.a1.app3.entity.UserShow;
import com.jcodecraeer.xrecyclerview.XRecyclerView;

import java.util.ArrayList;
import java.util.List;

public class CartAdapter extends RecyclerView.Adapter<CartAdapter.ViewHolder> {
private Context context;
private List<UserShow.DataBase> list1;

public CartAdapter(Context context) {
    this.context = context;
    this.list1=new ArrayList<>();
}

public void setList1(List<UserShow.DataBase> list1) {
    if (list1!=null){
        this.list1 = list1;
    }
    notifyDataSetChanged();
}

@NonNull
@Override
public CartAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
   View view=LayoutInflater.from(context).inflate(R.layout.cartshow,viewGroup,false);
    ViewHolder viewHolder = new ViewHolder(view);
    return viewHolder;
}

@Override
public void onBindViewHolder(@NonNull CartAdapter.ViewHolder viewHolder, int position) {
    UserShow.DataBase dataBase = list1.get(position);
    viewHolder.name.setText(list1.get(position).sellerName);
    viewHolder.xr.setLayoutManager(new LinearLayoutManager(context));
    viewHolder.xr.setAdapter(new ProductAdapter(context,list1.get(position).list));
    viewHolder.checkbox.setChecked(list1.get(position).checkbox);
    if (dataBase.checkbox){
        viewHolder.checkbox.setChecked(true);
    }else{
        viewHolder.checkbox.setChecked(false);
    }
}

@Override
public int getItemCount() {
    return list1.size();
}

public class ViewHolder extends RecyclerView.ViewHolder {
    private TextView name,xiao;
    private XRecyclerView xr;
    private CheckBox checkbox;
    public ViewHolder(@NonNull View itemView) {
        super(itemView);
        this.name=itemView.findViewById(R.id.name);
        this.xiao=itemView.findViewById(R.id.xiao);
        this.xr=itemView.findViewById(R.id.xr);
        this.checkbox=itemView.findViewById(R.id.checkbox);
    }
}

}

//ProductAdapter适配器
package com.example.a1.app3.apapter;

import android.content.Context;
import android.support.annotation.NonNull;
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.ImageView;
import android.widget.TextView;

import com.bumptech.glide.Glide;
import com.example.a1.app3.R;
import com.example.a1.app3.entity.User;
import com.example.a1.app3.entity.UserShow;
import com.example.a1.app3.view.RightView;
import com.jcodecraeer.xrecyclerview.XRecyclerView;

import java.util.ArrayList;
import java.util.List;

public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.ViewHolder> {
private Context context;
private List<UserShow.DataBase.Product> list;

public ProductAdapter(Context context, List<UserShow.DataBase.Product> list) {
    this.context = context;
    this.list= list;
}

@NonNull
@Override
public ProductAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
   View view=LayoutInflater.from(context).inflate(R.layout.prodductshow,viewGroup,false);
    ViewHolder viewHolder = new ViewHolder(view);
    return viewHolder;
}

@Override
public void onBindViewHolder(@NonNull ProductAdapter.ViewHolder viewHolder, int i) {
    UserShow.DataBase.Product product = list.get(i);
    String[] split = list.get(i).images.split("!");
    Glide.with(context).load(split[0]).into(viewHolder.img);
    viewHolder.title.setText(list.get(i).title);
    viewHolder.price.setText(list.get(i).price+"");
    viewHolder.checkbox.setChecked(product.isproductcheckbox);
}


@Override
public int getItemCount() {
    return list.size();
}

public class ViewHolder extends RecyclerView.ViewHolder {
    private TextView title,price;
    private ImageView img;
    private CheckBox checkbox;
    private RightView rightView;
    public ViewHolder(@NonNull View itemView) {
        super(itemView);
        this.checkbox=itemView.findViewById(R.id.checkbox);
        this.img=itemView.findViewById(R.id.img);
        this.title=itemView.findViewById(R.id.title);
        this.price=itemView.findViewById(R.id.price);

    }
}

}

Api接口
package com.example.a1.app3.Api;

public class UserApi {
public final static String USER_API=“http://www.zhaoapi.cn/product/searchProducts”;
//查询购物车
public final static String CART_API=“http://www.zhaoapi.cn/product/getCarts”;

//添加购物车
public static final String USER_ADDSHOP="http://www.zhaoapi.cn/product/addCart";

}

契约类LoadContract
package com.example.a1.app3.contract;

import com.example.a1.app3.net.RequestCallback;

import java.util.HashMap;
import java.util.Map;

public interface LoadContact {
//presenter
public abstract class LloadPresenter{
public abstract void preesenter(HashMap<String,String> map);
public abstract void showpresenter(HashMap<String,String> map);
public abstract void addshop(HashMap<String,String>params);
}
//model层
interface LloadModel{
void model(HashMap<String,String> map, RequestCallback callback);
void show(HashMap<String,String> map, RequestCallback callback);
void addshop(HashMap<String,String>map, RequestCallback callback);
}
//view层
interface LloadView{
void onSuccess(String result);
void onFailUre(String msg);
void onSuccessAddShop(String result);
}

}

bean类
//二级类表UserShow
public String msg;
public String code;
public List data;
public class DataBase{
public String sellerName;
public String sellerid;
public boolean checkbox;
public List list;
public class Product{
public boolean isproductcheckbox;
public int productNum=1;
public String title;
public String images;
public double price;
public String pid;
}
}

添加
private String msg;
private String code;

//fragment切换
第一个
package com.example.a1.app3.fragment;

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.example.a1.app3.R;
import com.example.a1.app3.apapter.MyAdapter;
import com.example.a1.app3.contract.LoadContact;
import com.example.a1.app3.entity.AddShop;
import com.example.a1.app3.entity.User;
import com.example.a1.app3.presenter.LoadPresenter;
import com.google.gson.Gson;
import com.jcodecraeer.xrecyclerview.XRecyclerView;

import java.util.HashMap;

public class FragmentOne extends Fragment implements LoadContact.LloadView {
private EditText edit;
private Button but;
private XRecyclerView xrec;
private LoadPresenter presenter;
private MyAdapter myAdapter;
private int page=1;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = LayoutInflater.from(getActivity()).inflate(R.layout.fragmentyi, container, false);
edit = view.findViewById(R.id.edit);
but =view.findViewById(R.id.but);
xrec = view.findViewById(R.id.xrec);

    xrec.setLayoutManager(new LinearLayoutManager(getActivity()));
    presenter=new LoadPresenter(this);
    myAdapter=new MyAdapter(getActivity());

    myAdapter.setGetpidcllback(new MyAdapter.getpidCllback() {
        @Override
        public void getpid(int pid) {

            HashMap<String,String> map= new HashMap<>();
            map.put("uid","500");
            map.put("pid",pid+"");
            presenter.addshop(map);
        }
    });


    but.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            HashMap<String,String> map2 = new HashMap<>();
            String aaa=edit.getText().toString();
            map2.put("keywords",aaa);
            map2.put("page",page+"");
            presenter.preesenter(map2);
        }
    });
    //刷新
    xrec.setLoadingListener(new XRecyclerView.LoadingListener() {
        @Override
        public void onRefresh() {
            page++;
            HashMap<String,String> map1 = new HashMap<>();
            map1.put("keywords","1");
            map1.put("page",page+"");
            presenter.preesenter(map1);
            xrec.refreshComplete();
        }

        @Override
        public void onLoadMore() {

        }
    });

    xrec.setAdapter(myAdapter);
    return view;
}

@Override
public void onSuccess(String result) {
    User user = new Gson().fromJson(result, User.class);
    Toast.makeText(getActivity(), user.getMsg(),Toast.LENGTH_SHORT).show();
    myAdapter.setList(user.getData());
}

@Override
public void onFailUre(String msg) {
    Toast.makeText(getActivity(),msg,Toast.LENGTH_SHORT).show();
}

@Override
public void onSuccessAddShop(String result) {
    AddShop addShop = new Gson().fromJson(result, AddShop.class);

    Toast.makeText(getActivity(),addShop.getMsg(),Toast.LENGTH_SHORT).show();
}

}

//第二个
package com.example.a1.app3.fragment;

import android.graphics.Paint;
import android.os.Bundle;
import android.preference.Preference;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;

import com.example.a1.app3.R;
import com.example.a1.app3.apapter.CartAdapter;
import com.example.a1.app3.apapter.MyAdapter;
import com.example.a1.app3.contract.LoadContact;
import com.example.a1.app3.entity.User;
import com.example.a1.app3.entity.UserShow;
import com.example.a1.app3.net.CartUiCakkbak;
import com.example.a1.app3.presenter.LoadPresenter;
import com.google.gson.Gson;
import com.jcodecraeer.xrecyclerview.XRecyclerView;

import java.util.HashMap;
import java.util.List;

public class FragmentTwo extends Fragment implements LoadContact.LloadView,CartUiCakkbak {
private TextView fan;
private XRecyclerView xr;
private CheckBox checkbox;
private TextView zong;
private Button jies;
private LoadPresenter loadPresenter;
private CartAdapter cartAdapter;
private List<UserShow.DataBase> car;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = LayoutInflater.from(getActivity()).inflate(R.layout.fragmenter, container, false);
fan = view.findViewById(R.id.fan);
xr =view.findViewById(R.id.xr);
checkbox =view.findViewById(R.id.checkbox);
zong = view.findViewById(R.id.zong);
jies =view.findViewById(R.id.jies);
xr.setLayoutManager(new LinearLayoutManager(getActivity()));
xr.setPullRefreshEnabled(true);
xr.setLoadingMoreEnabled(false);
xr.setLoadingListener(new XRecyclerView.LoadingListener() {
@Override
public void onRefresh() {
reqData();
xr.refreshComplete();
}
@Override
public void onLoadMore() {

        }
    });

    checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
           if (isChecked){
               for (UserShow.DataBase cart:car){
                   cart.checkbox=true;
                   for (UserShow.DataBase.Product product:cart.list){
                       product.isproductcheckbox=true;
                   }
               }
           }else {
               for (UserShow.DataBase cart : car) {
                   cart.checkbox = false;
                   for (UserShow.DataBase.Product product : cart.list) {
                       product.isproductcheckbox = false;
                   }
               }
           }
           cartAdapter.notifyDataSetChanged();
           getTotaPrice();
        }
    });
    cartAdapter=new CartAdapter(getActivity());
    xr.setAdapter(cartAdapter);
    return view;
}

private void getTotaPrice() {
   double toprice=0;
   for (UserShow.DataBase dataBase:car){
       for (UserShow.DataBase.Product product:dataBase.list){
           if (product.isproductcheckbox){
               toprice+=product.price;
           }
       }
   }
   checkbox.setText(toprice+"");
}
private void reqData() {
    loadPresenter=new LoadPresenter(this);
    HashMap<String,String> map = new HashMap<>();
    map.put("uid","500");
    loadPresenter.showpresenter(map);
}

@Override
public void onSuccess(String result) {
    UserShow userShow = new Gson().fromJson(result, UserShow.class);
    car=userShow.data;
    cartAdapter.setList1(userShow.data);
}

@Override
public void onFailUre(String msg) {

}

@Override
public void onSuccessAddShop(String result) {

}


@Override
public void notifyCart() {
    getTotaPrice();
}

}

LoadModel层
package com.example.a1.app3.model;

import android.os.Handler;

import com.example.a1.app3.Api.UserApi;
import com.example.a1.app3.contract.LoadContact;
import com.example.a1.app3.net.OkHttpCallback;
import com.example.a1.app3.net.OkHttpUtiles;
import com.example.a1.app3.net.RequestCallback;

import java.util.HashMap;

public class LoadModel implements LoadContact.LloadModel {
private Handler handler=new Handler();
@Override
public void model(HashMap<String, String> map, final RequestCallback callback) {
OkHttpUtiles.getmInsxcvczmn().doPost(UserApi.USER_API, map, new OkHttpCallback() {
@Override
public void onSuccess(final String result) {
if (callback!=null){
handler.post(new Runnable() {
@Override
public void run() {
callback.onSuccess(result);
}
});
}
}

        @Override
        public void onFailUre(final String msg) {
            if (callback!=null){
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        callback.onSuccess(msg);
                    }
                });
            }
        }
    });
}

@Override
public void show(HashMap<String, String> map, final RequestCallback callback) {
    OkHttpUtiles.getmInsxcvczmn().doPost(UserApi.CART_API, map, new OkHttpCallback() {
        @Override
        public void onSuccess(final String result) {
            if (callback!=null){
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        callback.onSuccess(result);
                    }
                });
            }
        }

        @Override
        public void onFailUre(final String msg) {
            if (callback!=null){
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        callback.onSuccess(msg);
                    }
                });
            }
        }
    });
}

@Override
public void addshop(HashMap<String, String> map, final RequestCallback callback) {
    OkHttpUtiles.getmInsxcvczmn().doPost(UserApi.USER_ADDSHOP, map, new OkHttpCallback() {
        @Override
        public void onSuccess(final String result) {
            if (callback!=null){
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        callback.onSuccess(result);
                    }
                });
            }
        }

        @Override
        public void onFailUre(final String msg) {
            if (callback!=null){
               handler.post(new Runnable() {
                   @Override
                   public void run() {
                       callback.onFailUre(msg);
                   }
               });
            }
        }
    });
}

}

//presenter层
package com.example.a1.app3.presenter;

import com.example.a1.app3.contract.LoadContact;
import com.example.a1.app3.model.LoadModel;
import com.example.a1.app3.net.RequestCallback;

import java.util.HashMap;

public class LoadPresenter extends LoadContact.LloadPresenter{
private LoadContact.LloadView lloadView;
private LoadModel loadModel;
public LoadPresenter(LoadContact.LloadView lloadView) {
this.lloadView = lloadView;
loadModel=new LoadModel();
}

@Override
public void preesenter(HashMap<String, String> map) {
    if (loadModel!=null){
        loadModel.model(map, new RequestCallback() {
            @Override
            public void onSuccess(String result) {
                if (lloadView!=null){
                    lloadView.onSuccess(result);
                }
            }

            @Override
            public void onFailUre(String msg) {
                if (lloadView!=null){
                    lloadView.onSuccess(msg);
                }
            }
        });
    }
}

@Override
public void showpresenter(HashMap<String, String> map) {
    if (loadModel!=null){
        loadModel.show(map, new RequestCallback() {
            @Override
            public void onSuccess(String result) {
                if (lloadView!=null){
                    lloadView.onSuccess(result);
                }
            }

            @Override
            public void onFailUre(String msg) {
                if (lloadView!=null){
                    lloadView.onSuccess(msg);
                }
            }
        });
    }
}

@Override
public void addshop(HashMap<String, String> map) {
    if (loadModel!=null){
        loadModel.addshop(map, new RequestCallback() {
            @Override
            public void onSuccess(String result) {
                if (lloadView!=null){
                    lloadView.onSuccess(result);
                }
            }

            @Override
            public void onFailUre(String msg) {
                if (lloadView!=null){
                    lloadView.onSuccess(msg);
                }
            }
        });
    }
}

}

RightView
package com.example.a1.app3.view;

import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

import com.example.a1.app3.R;

public class RightView extends LinearLayout {
private TextView jia;
private EditText num;
private TextView jian;
private int nums=1;

public RightView(Context context) {
    this(context,null);
}

public RightView(Context context,  AttributeSet attrs) {
    this(context, attrs,0);
}

public RightView(Context context,AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
    inData(context);
}

private void inData(Context context) {
    View view=LayoutInflater.from(context).inflate(R.layout.jia,this);
    jia = view.findViewById(R.id.jia);
    num = view.findViewById(R.id.num);
    jian = view.findViewById(R.id.jian);
    num.setText("1");
    jia.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            nums++;
            num.setText(nums+"");
        }
    });
    jian.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            if (nums==0){
                nums=1;
            }
            nums--;
            num.setText(nums+"");
        }
    });

}

}

切换
package com.example.a1.app3;

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.constraint.ConstraintLayout;
import android.support.design.widget.BottomNavigationView;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;
import android.widget.TextView;

import com.example.a1.app3.fragment.FragmentOne;
import com.example.a1.app3.fragment.FragmentThree;
import com.example.a1.app3.fragment.FragmentTwo;

public class Main2Activity extends AppCompatActivity {

private TextView mTextMessage;

private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
        = new BottomNavigationView.OnNavigationItemSelectedListener() {

    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem item) {
        switch (item.getItemId()) {
            case R.id.navigation_home:
                pager.setCurrentItem(0);
                return true;
            case R.id.navigation_dashboard:
                pager.setCurrentItem(1);
                return true;
            case R.id.navigation_notifications:
                pager.setCurrentItem(2);
                return true;
        }
        return false;
    }
};
private ConstraintLayout container;
private ViewPager pager;
private BottomNavigationView navigation;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);
    initView();
    mTextMessage = (TextView) findViewById(R.id.message);
    BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
    navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
   pager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
       @Override
       public Fragment getItem(int i) {
           switch (i){
               case 0:
                   return new FragmentOne();

               case 1:
                   return new FragmentTwo();
               case 2:
                   return new FragmentThree();
           }
           return null;
       }

       @Override
       public int getCount() {
           return 3;
       }
   });
}

private void initView() {
    container = (ConstraintLayout) findViewById(R.id.container);
    pager = (ViewPager) findViewById(R.id.pager);
    navigation = (BottomNavigationView) findViewById(R.id.navigation);
}

}

\\\\

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值