3

bean

public class Showbean {
    private String status;
    private String message;
    private List<DataBean> data;
    private boolean isCheck=false;
    public boolean isCheck() {
        return isCheck;
    }
    public void setCheck(boolean check) {
        isCheck = check;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public List<DataBean> getData() {
        return data;
    }

    public void setData(List<DataBean> data) {
        this.data = data;
    }

    public static class DataBean {


        private String id;
        private String name;
        private String restaurant_id;
        private String created_at;
        private String __v;
        private List<SpusBean> spus;
        private boolean isCheck=false;

        public boolean isCheck() {
            return isCheck;
        }

        public void setCheck(boolean check) {
            isCheck = check;
        }
        public String getId() {
            return id;
        }

        public void setId(String id) {
            this.id = id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getRestaurant_id() {
            return restaurant_id;
        }

        public void setRestaurant_id(String restaurant_id) {
            this.restaurant_id = restaurant_id;
        }

        public String getCreated_at() {
            return created_at;
        }

        public void setCreated_at(String created_at) {
            this.created_at = created_at;
        }

        public String get__v() {
            return __v;
        }

        public void set__v(String __v) {
            this.__v = __v;
        }

        public List<SpusBean> getSpus() {
            return spus;
        }

        public void setSpus(List<SpusBean> spus) {
            this.spus = spus;
        }

        public static class SpusBean {


            private String _id;
            private String id;
            private String restaurant_id;
            private String category_id;
            private String name;
            private String praise_num;
            private String praise_content;
            private String month_saled;
            private String month_saled_content;
            private String pic_url;
            private String __v;
            private String created_at;
            private List<SkusBean> skus;
            private List<?> attrs;
            private List<?> status_remind_list;
            private boolean isCheck=false;

            public boolean isCheck() {
                return isCheck;
            }

            public void setCheck(boolean check) {
                isCheck = check;
            }
            public String get_id() {
                return _id;
            }

            public void set_id(String _id) {
                this._id = _id;
            }

            public String getId() {
                return id;
            }

            public void setId(String id) {
                this.id = id;
            }

            public String getRestaurant_id() {
                return restaurant_id;
            }

            public void setRestaurant_id(String restaurant_id) {
                this.restaurant_id = restaurant_id;
            }

            public String getCategory_id() {
                return category_id;
            }

            public void setCategory_id(String category_id) {
                this.category_id = category_id;
            }

            public String getName() {
                return name;
            }

            public void setName(String name) {
                this.name = name;
            }

            public String getPraise_num() {
                return praise_num;
            }

            public void setPraise_num(String praise_num) {
                this.praise_num = praise_num;
            }

            public String getPraise_content() {
                return praise_content;
            }

            public void setPraise_content(String praise_content) {
                this.praise_content = praise_content;
            }

            public String getMonth_saled() {
                return month_saled;
            }

            public void setMonth_saled(String month_saled) {
                this.month_saled = month_saled;
            }

            public String getMonth_saled_content() {
                return month_saled_content;
            }

            public void setMonth_saled_content(String month_saled_content) {
                this.month_saled_content = month_saled_content;
            }

            public String getPic_url() {
                return pic_url;
            }

            public void setPic_url(String pic_url) {
                this.pic_url = pic_url;
            }

            public String get__v() {
                return __v;
            }

            public void set__v(String __v) {
                this.__v = __v;
            }

            public String getCreated_at() {
                return created_at;
            }

            public void setCreated_at(String created_at) {
                this.created_at = created_at;
            }

            public List<SkusBean> getSkus() {
                return skus;
            }

            public void setSkus(List<SkusBean> skus) {
                this.skus = skus;
            }

            public List<?> getAttrs() {
                return attrs;
            }

            public void setAttrs(List<?> attrs) {
                this.attrs = attrs;
            }

            public List<?> getStatus_remind_list() {
                return status_remind_list;
            }

            public void setStatus_remind_list(List<?> status_remind_list) {
                this.status_remind_list = status_remind_list;
            }

            public static class SkusBean {
                /**
                 * description :
                 * price : 20.8
                 * id : 1090
                 * _id : 5ac5b0913714cc2d644f461f
                 */

                private String description;
                private String price;
                private String id;
                private String _id;

                public String getDescription() {
                    return description;
                }

                public void setDescription(String description) {
                    this.description = description;
                }

                public String getPrice() {
                    return price;
                }

                public void setPrice(String price) {
                    this.price = price;
                }

                public String getId() {
                    return id;
                }

                public void setId(String id) {
                    this.id = id;
                }

                public String get_id() {
                    return _id;
                }

                public void set_id(String _id) {
                    this._id = _id;
                }
            }
        }
    }
}
           

Ai

public class Ai {
    public static String show=" http://www.wanandroid.com";
}

Api

public interface Api {
    @GET("tools/mockapi/6523/restaurant-list")
    Observable<Showbean> getShow();
}

fresco

public class Fresco extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        com.facebook.drawee.backends.pipeline.Fresco.initialize(this);

    }
}

okhttpmanager

public class OkhttpManager {

    private static OkhttpManager instance;

    public Api api;

    //******************************拦截器
    private Interceptor getInterceptor() {
        Interceptor interceptor = new Interceptor() {
            @Override
            public Response intercept(Chain chain) throws IOException {
                Request request = chain.request();
                Response proceed = chain.proceed(request);
                return proceed;
            }
        };
        return interceptor;
    }

    private OkhttpManager() {
        OkHttpClient okHttpClient = new OkHttpClient().newBuilder()
                .writeTimeout(3000, TimeUnit.SECONDS)
                .readTimeout(3000, TimeUnit.SECONDS)
                .connectTimeout(3000, TimeUnit.SECONDS)
                .addInterceptor(getInterceptor())
                .build();
        Retrofit retrofit = new Retrofit.Builder()
                .client(okHttpClient)
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .addConverterFactory(GsonConverterFactory.create())
                .baseUrl(Ai.show)
                .build();
        api = retrofit.create(Api.class);
    }

    public static OkhttpManager Instance() {
        if (instance == null) {
            synchronized (OkhttpManager.class) {
                if (instance == null) {
                    instance = new OkhttpManager();
                }
            }
        }
        return instance;
    }
}

Basepresent

public class BasePresnet<T> {
    private T view;

    public T getView() {
        return view;
    }

    public void setView(T view) {
        this.view = view;
    }
}

Showpresent

public class ShowPresent extends BasePresnet<IShowView> {

    private final Api api;

    public ShowPresent(){
        OkhttpManager instance = OkhttpManager.Instance();
        api = instance.api;
    }
    public void getData(){
        Observable<Showbean> show = api.getShow();
        show.subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Consumer<Showbean>() {
                    @Override
                    public void accept(Showbean showbean) throws Exception {
                        getView().Success(showbean);
                    }
                });
    }
}

Ibaseview

public interface IBaseView {
}

IShowview

public interface IShowView <T>extends IBaseView{
    void Success(T t);
    void error(String s);
}

Myadapter

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
    Context context;
    List<Showbean.DataBean> list;
    List<Showbean.DataBean.SpusBean> list1;
    private YouAdapter youAdapter;

    public MyAdapter(Context context, List<Showbean.DataBean> list) {
        this.context = context;
        this.list = list;
    }

    @NonNull
    @Override
    public MyAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = View.inflate(viewGroup.getContext(), R.layout.item1, null);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull final MyAdapter.ViewHolder viewHolder, int i) {
        viewHolder.text1.setText(list.get(i).getName());
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false);
        viewHolder.recycler1.setLayoutManager(linearLayoutManager);
        for (int j = 0; j < list.size(); j++) {
            list1 = list.get(i).getSpus();
        }

        youAdapter = new YouAdapter(context, list1);
        viewHolder.recycler1.setAdapter(youAdapter);
        viewHolder.check1.setChecked(list.get(i).isCheck());
        viewHolder.check1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                for (int j = 0; j < list1.size(); j++) {
                    list1.get(j).setCheck(isChecked);
                }
                youAdapter.notifyDataSetChanged();
            }
        });
    }

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

    public class ViewHolder extends RecyclerView.ViewHolder {

        private final RecyclerView recycler1;
        private final CheckBox check1;
        private final TextView text1;

        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            check1 = itemView.findViewById(R.id.check1);
            recycler1 = itemView.findViewById(R.id.recycler1);
            text1 = itemView.findViewById(R.id.text1);
        }

    }

    private Oncheck oncheck;

    public interface Oncheck {
        void oncheck(boolean ischeck);
    }

    public void setOncheck(Oncheck oncheck) {
        this.oncheck = oncheck;
    }
}

youadapter

public class YouAdapter extends RecyclerView.Adapter<YouAdapter.ViewHolder> {
    public YouAdapter(Context context, List<Showbean.DataBean.SpusBean> list) {
        this.context = context;
        this.list = list;
    }

    Context context;
    List<Showbean.DataBean.SpusBean> list;

    @NonNull
    @Override
    public YouAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = View.inflate(viewGroup.getContext(), R.layout.item2, null);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull YouAdapter.ViewHolder viewHolder, int i) {
        viewHolder.image1.setImageURI(Uri.parse(list.get(i).getPic_url()));
        viewHolder.text22.setText(list.get(i).getName());
        viewHolder.text33.setText(list.get(i).getMonth_saled_content());
        viewHolder.checkbox2.setChecked(list.get(i).isCheck());

        viewHolder.zdy.setAddCallback(new Zdy.AddCallback() {
            @Override
            public void numcallback(int num) {

            }
        });
    }

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

    public class ViewHolder extends RecyclerView.ViewHolder {

        private final SimpleDraweeView image1;
        private final CheckBox checkbox2;
        private final TextView text33;
        private final TextView text22;
        private final Zdy zdy;

        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            image1 = itemView.findViewById(R.id.image1);
            checkbox2 = itemView.findViewById(R.id.checkbox2);
            text33 = itemView.findViewById(R.id.text33);
            text22 = itemView.findViewById(R.id.text22);
            zdy = itemView.findViewById(R.id.zdy);
        }
    }
}

mainactivity

public class MainActivity extends AppCompatActivity implements IShowView<Showbean> {
    private List<Showbean.DataBean> data;
    private RecyclerView recycler;
    private CheckBox check;
    private MyAdapter myAdapter;
    private TextView zj;
    private TextView sl;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        recycler = findViewById(R.id.recycler);
        zj = findViewById(R.id.zj1);
        sl = findViewById(R.id.sl);
        check = findViewById(R.id.check);
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(MainActivity.this, LinearLayoutManager.VERTICAL, false);
        recycler.setLayoutManager(linearLayoutManager);
        ShowPresent showPresent = new ShowPresent();
        showPresent.getData();
        showPresent.setView(this);
        check.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

            private List<Showbean.DataBean.SpusBean> spus;

            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                checkAll(isChecked);
            }

            private void checkAll(boolean isChecked) {
                for (int i = 0; i < data.size(); i++) {
                    Showbean.DataBean dataBean = data.get(i);
                    dataBean.setCheck(isChecked);
                    spus = dataBean.getSpus();
                    for (int j = 0; j < spus.size(); j++) {
                        Showbean.DataBean.SpusBean spusBean = spus.get(j);
                        spusBean.setCheck(isChecked);
                    }
                }
                myAdapter.notifyDataSetChanged();
                zjj();
            }

            private void zjj() {
                int total = 0;
                int count = 0;
                for (int i = 0; i < data.size(); i++) {
                    Showbean.DataBean bean = data.get(i);
                    List<Showbean.DataBean.SpusBean> spus = bean.getSpus();
                    for (int j = 0; j < spus.size(); j++) {
                        Showbean.DataBean.SpusBean spusBean = spus.get(j);
                        if (spusBean.isCheck()) {
                            String id = spusBean.getId();
                            String praise_num = spusBean.getPraise_num();
                            int i1 = Integer.parseInt(id);
                            int i2 = Integer.parseInt(praise_num);
                            total += i1 * i2;
                            count += i2;
                        }
                    }

                }
                zj.setText("总价"+total);
                sl.setText("数量"+count);
            }

        });
    }

    @Override
    public void Success(final Showbean showbean) {
        runOnUiThread(new Runnable() {


            @Override
            public void run() {
                data = showbean.getData();
                myAdapter = new MyAdapter(MainActivity.this, data);
                recycler.setAdapter(myAdapter);
            }
        });
    }

    @Override
    public void error(String s) {

    }
}

zdy

public class Zdy extends LinearLayout {

    private TextView jian;
    private TextView jia;
    private EditText  et_num ;
    private int num=1;

    public Zdy(Context context) {
       this(context,null);

    }

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

    }

    public Zdy(Context context,  AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init(context);

    }

    private void init(final Context context) {
        View view = LayoutInflater.from(context).inflate(R.layout.zdy, this, true);
        jian = findViewById(R.id.jian);
        jia = findViewById(R.id.jia);
        et_num = findViewById(R.id.num);
        et_num .setText("1");
        jian.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                int num = Integer.parseInt( et_num .getText().toString());
                num--;
                if(num==0){
                    num=1;
                    Toast.makeText(context,"不能再减了",Toast.LENGTH_SHORT).show();

                }
                et_num .setText(num+"");
                if(addCallback!=null){
                    addCallback.numcallback(num);
                }
                addCallback.numcallback(num);
            }
        });
        jia.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                int num = Integer.parseInt(et_num.getText().toString());
                num++;
                et_num.setText(num+"");
                if(addCallback!=null){
                    addCallback.numcallback(num);
                }
                addCallback.numcallback(num);
            }
        });
    }
    private AddCallback addCallback;
    public interface AddCallback{
        void numcallback(int num);
    }

    public void setAddCallback(AddCallback addCallback) {
        this.addCallback = addCallback;
    }
}

activity_main

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">
   <LinearLayout
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:orientation="horizontal">
       <TextView
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:id="@+id/zj1"
           android:text="总价"/>
       <TextView
           android:layout_marginLeft="40dp"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:id="@+id/sl"
           android:text="数量"/>
   </LinearLayout>
   <CheckBox
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:id="@+id/check"
       android:text="全选"/>
    <android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/recycler"></android.support.v7.widget.RecyclerView>

</LinearLayout>

item1

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">
    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/check1"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/text1"
        android:text="asdfg"/>
</LinearLayout>
    <android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/recycler1"></android.support.v7.widget.RecyclerView>
</LinearLayout>


item2

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">
    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/checkbox2"/>
    <com.facebook.drawee.view.SimpleDraweeView
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:id="@+id/image1"/>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/text22"
            android:text="awerfgvcxa"
            android:layout_marginTop="10dp"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/text33"
            android:text="awerfgvcxa"
            android:layout_marginTop="10dp"/>
    </LinearLayout>
<com.bawie.gwc.Zdy
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/zdy"
    ></com.bawie.gwc.Zdy>
</LinearLayout>

zdy

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
       android:text="-"
        android:id="@+id/jian"/>
    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="1"
        android:id="@+id/num"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="+"
        android:id="@+id/jia"/>


</LinearLayout>

在这里插入图片描述记得写依赖哦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值