//在写之前在Beean里边再写一个属性boolan类型的与价前平级
//第一个大的页面
import android.content.Context;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.CheckBox;
import android.widget.TextView;
import android.widget.Toast;
import com.google.gson.Gson;
import java.util.ArrayList;
import java.util.List;
import soexample.umeng.com.liujin20181022.R;
import soexample.umeng.com.liujin20181022.adapter.WaiAdapter;
import soexample.umeng.com.liujin20181022.bean.GoodsBean;
import soexample.umeng.com.liujin20181022.mvp.view.AppDelegate;
import soexample.umeng.com.liujin20181022.net.HttpHelper;
public class Fragment_one_Presenter extends AppDelegate {
private RecyclerView mRecyclerViewget;
private WaiAdapter waiAdapter;
private List<GoodsBean.DataBean> list = new ArrayList<>();
private CheckBox checkBox;
private TextView num;
private List<GoodsBean.DataBean> data1=new ArrayList<>();
private TextView price;
@Override
public int getLayoutId() {
return R.layout.fragment_one;
}
@Override
public void initData() {
super.initData();
mRecyclerViewget = (RecyclerView)get(R.id.recyclerview);
checkBox = get(R.id.check);
price = get(R.id.tv_price);
num = get(R.id.bt_num);
LinearLayoutManager manager = new LinearLayoutManager(context);
manager.setOrientation(LinearLayoutManager.VERTICAL);
mRecyclerViewget.setLayoutManager(manager);
waiAdapter = new WaiAdapter(context);
mRecyclerViewget.setAdapter(waiAdapter);
dohttp();
checkBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
quan();
}
});
//从适配器中获取点击事件,在从新赋值与计算
waiAdapter.result(new WaiAdapter.Interwailistener() {
@Override
public void setListData(List<GoodsBean.DataBean> list) {
double prices=0;
int nums=0;
int num1=0;
int num2=0;
for(int i=0;i<list.size();i++){
List<GoodsBean.DataBean.ListBean> list1 = list.get(i).getList();
for(int j=0;j<list1.size();j++){
num1++;
if(list1.get(j).isIschecked()){
num2++;
prices=prices+list1.get(j).getPrice()*list1.get(j).getNum();
nums+=list1.get(j).getNum();
}
}
}
if(num2<num1){
checkBox.setChecked(false);
}else{
checkBox.setChecked(true);
}
price.setText("总计:"+prices+"");
num.setText("结算("+nums+")");
waiAdapter.setList(data1);
}
});
}
// 以下是全选与全部选的代码
private void quan() {
double prices=0;
int nums=0;
for(int i=0;i<data1.size();i++){
List<GoodsBean.DataBean.ListBean> list = data1.get(i).getList();
for(int j=0;j<list.size();j++){
if(checkBox.isChecked()){
prices=prices+list.get(j).getPrice()*list.get(j).getNum();
nums+=list.get(j).getNum();
list.get(j).setIschecked(true);
}else{
list.get(j).setIschecked(false);
}
}
}
price.setText("总计:"+prices+"");
num.setText("结算("+nums+")");
waiAdapter.setList(data1);
}
private void dohttp() {
new HttpHelper().get("https://www.zhaoapi.cn/product/getCarts?uid=71".replace("https","http")).result(new HttpHelper.Httplistenner() {
@Override
public void success(String data) {
//toast(data);
Gson gson = new Gson();
GoodsBean goodsBean = gson.fromJson(data, GoodsBean.class);
data1 = goodsBean.getData();
//Toast.makeText(context,data1+"sdf",Toast.LENGTH_SHORT).show();
waiAdapter.setList(data1);
}
@Override
public void error(String error) {
}
});
}
private Context context;
@Override
public void getContext(Context context) {
super.getContext(context);
this.context=context;
}
public void toast(String msg){
Toast.makeText(context,msg,Toast.LENGTH_SHORT).show();
}
}
第一个大的适配器去:
package soexample.umeng.com.liujin20181022.adapter;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
import soexample.umeng.com.liujin20181022.R;
import soexample.umeng.com.liujin20181022.bean.GoodsBean;
public class WaiAdapter extends RecyclerView.Adapter<WaiAdapter.MyViewholder>{
private List<GoodsBean.DataBean> list=new ArrayList<>();
private Context context;
private LiAdapter liAdapter;
public WaiAdapter(Context context) {
this.context=context;
}
public void setList( List<GoodsBean.DataBean> list){
this.list=list;
notifyDataSetChanged();
}
@NonNull
@Override
public WaiAdapter.MyViewholder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = View.inflate(context, R.layout.waiadapter,null);
MyViewholder viewholder = new MyViewholder(view);
return viewholder;
}
@Override
public void onBindViewHolder(@NonNull WaiAdapter.MyViewholder myViewholder, int i) {
myViewholder.text.setText(list.get(i).getSellerName());
List<GoodsBean.DataBean.ListBean> list1 = list.get(i).getList();
liAdapter = new LiAdapter(context,list1);
//StaggeredGridLayoutManager manager = new StaggeredGridLayoutManager(3,1);
LinearLayoutManager manager = new LinearLayoutManager(context);
manager.setOrientation(LinearLayoutManager.VERTICAL);
myViewholder.mRecyclerVie.setLayoutManager(manager);
myViewholder.mRecyclerVie.setAdapter(liAdapter);
//从小的里边传过来的适配器,下边有一个result的回调
liAdapter.result(new LiAdapter.Interlistener() {
@Override
public void setListChange() {
interwailistener.setListData(list);
}
});
}
@Override
public int getItemCount() {
if(list==null||list.size()==0){
return 0;
}
return list.size();
}
public class MyViewholder extends RecyclerView.ViewHolder {
TextView text;
RecyclerView mRecyclerVie;
public MyViewholder(@NonNull View itemView) {
super(itemView);
text = (TextView)itemView.findViewById(R.id.titl);
mRecyclerVie = itemView.findViewById(R.id.recyview);
}
}
//回调
private Interwailistener interwailistener;
public void result(Interwailistener interwailistener){
this.interwailistener=interwailistener;
}
public interface Interwailistener{
void setListData(List<GoodsBean.DataBean> list);
}
}
最小的一个适配器
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
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 java.util.ArrayList;
import java.util.List;
import soexample.umeng.com.liujin20181022.R;
import soexample.umeng.com.liujin20181022.activity.SelfView;
import soexample.umeng.com.liujin20181022.bean.GoodsBean;
public class LiAdapter extends RecyclerView.Adapter<LiAdapter.ViewHolder>{
private Context context;
private List<GoodsBean.DataBean.ListBean> list1=new ArrayList<>();
public LiAdapter(Context context, List<GoodsBean.DataBean.ListBean> list1) {
this.context=context;
this.list1=list1;
}
@NonNull
@Override
public LiAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = View.inflate(context, R.layout.liadapter,null);
ViewHolder viewHolder = new ViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(@NonNull LiAdapter.ViewHolder viewHolder, final int i) {
viewHolder.checkBox.setChecked(list1.get(i).isIschecked());
viewHolder.title.setText(list1.get(i).getTitle());
viewHolder.price.setText(list1.get(i).getPrice()+"");
Glide.with(context).load(list1.get(i).getImages().split("\\|")[0]).into(viewHolder.pic);
给他写一个点击事件
viewHolder.checkBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
然后判断是否选中,最后刷新适配器
if(list1.get(i).isIschecked()){
list1.get(i).setIschecked(false);
}else{
list1.get(i).setIschecked(true);
}
notifyItemChanged(i);
interlistener.setListChange();
}
});
}
@Override
public int getItemCount() {
return list1.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
TextView title,price;
ImageView pic;
private final CheckBox checkBox;
private final SelfView snum;
public ViewHolder(@NonNull View itemView) {
super(itemView);
checkBox = itemView.findViewById(R.id.cb_check1);
pic = itemView.findViewById(R.id.text_pic);
title =itemView.findViewById(R.id.text_title);
price = itemView.findViewById(R.id.price);
snum = itemView.findViewById(R.id.sf_num);
}
}
//定义接口回调
private Interlistener interlistener;
public void result(Interlistener interlistener){
this.interlistener=interlistener;
}
public interface Interlistener{
void setListChange();
}
}
购物车
最新推荐文章于 2025-05-27 22:02:50 发布