一级列表

来源:互联网 发布:淘宝客服兼职工作 编辑:程序博客网 时间:2024/04/29 21:09

package com.example.recyclerview;/** * Created by GUO on 2017/10/23. */public class Eventbus {    private  boolean isFlag;    public boolean isFlag() {        return isFlag;    }    public void setFlag(boolean flag) {        isFlag = flag;    }}
-------------------------------------------------------------------------------------------------------------------------------------------------
package com.example.recyclerview;/** * Created by GUO on 2017/10/23. */public class Eventprice {    private  int count;    public  int price;    private boolean flag;    public boolean isFlag() {        return flag;    }    public void setFlag(boolean flag) {        this.flag = flag;    }    public int getPrice() {        return price;    }    public void setPrice(int price) {        this.price = price;    }    public int getCount() {        return count;    }    public void setCount(int count) {        this.count = count;    }}
-------------------------------------------------------------------------------------------------------------------------------------------------
package com.example.recyclerview;/** * Created by GUO on 2017/10/13. */public class ItemBean {     private  String name;    private  String price;private boolean cb;    public ItemBean(String name, String price, boolean cb) {        this.name = name;        this.price = price;        this.cb = cb;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getPrice() {        return price;    }    public void setPrice(String price) {        this.price = price;    }    public boolean isCb() {        return cb;    }    public void setCb(boolean cb) {        this.cb = cb;    }}
-------------------------------------------------------------------------------------------------------------------------------------------
package com.example.recyclerview;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.DividerItemDecoration;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 org.greenrobot.eventbus.EventBus;import org.greenrobot.eventbus.Subscribe;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity implements View.OnClickListener {    private List<ItemBean> list = new ArrayList<>();    private int sum = 0;    private int  conut=0;    /**     * 全选     */    private CheckBox mCbAll;    private RecyclerView mRv;    private Myadapter myadapter;    private TextView mTv;    private int i = 0;    /**     * 反选     */    private Button mBack;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main2);        initView();        EventBus.getDefault().register(this);        show();    }    @Override    protected void onDestroy() {        super.onDestroy();        EventBus.getDefault().unregister(this);    }    private void show() {        //设置管理器        mRv.setLayoutManager(new LinearLayoutManager(this));        for (int i = 0; i < 5; i++) {            ItemBean itemBean = new ItemBean("商品" + (i + 1), "2" + i, false);            list.add(itemBean);        }        mRv.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));        myadapter = new Myadapter(list, this);        mRv.setAdapter(myadapter);    }    private void initView() {        mCbAll = (CheckBox) findViewById(R.id.cb_all);        mRv = (RecyclerView) findViewById(R.id.rv);        mCbAll.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                myadapter.cbChecked(mCbAll.isChecked());            }        });        mTv = (TextView) findViewById(R.id.tv);        mBack = (Button) findViewById(R.id.back);        mBack.setOnClickListener(this);    }    @Subscribe    public void Onprice(Eventprice eventprice) {        if (eventprice.isFlag()) {            sum = 0;            conut=0;        }        int price = eventprice.getPrice();        int count1 = eventprice.getCount();        conut += count1;        sum += price;        if (sum < 0||conut<0) {            sum = 0;            conut=0;        }        mTv.setText("个数: "+conut+"  价钱: " + sum);    }    @Subscribe    public void OnEnventbus(Eventbus eventbus) {        mCbAll.setChecked(eventbus.isFlag());    }    @Override    public void onClick(View v) {        switch (v.getId()) {            case R.id.back:                mBack.setOnClickListener(new View.OnClickListener() {                    @Override                    public void onClick(View v) {                        myadapter.reverseSelect();                    }                });                break;        }    }}
----------------------------------------------------------------------------------------------------------------------------------
package com.example.recyclerview;import android.content.Context;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.LinearLayout;import android.widget.TextView;import android.widget.Toast;import org.greenrobot.eventbus.EventBus;import java.util.ArrayList;import java.util.List;/** * Created by GUO on 2017/10/13. */public class Myadapter extends RecyclerView.Adapter {    private List<ItemBean> list = new ArrayList<>();    private Context context;    private int count;    public Myadapter(List<ItemBean> list, Context context) {        this.list = list;        this.context = context;    }    @Override    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        View view = LayoutInflater.from(context).inflate(R.layout.item, parent, false);        TypeViewHolder typeViewHolder = new TypeViewHolder(view);        return typeViewHolder;    }    @Override    public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {        //绑定值        final TypeViewHolder typeViewHolder = (TypeViewHolder) holder;        final ItemBean itemBean;        itemBean = list.get(position);        typeViewHolder.textViewname.setText(itemBean.getName());        typeViewHolder.textViewprice.setText(itemBean.getPrice());        typeViewHolder.checkbox.setChecked(itemBean.isCb());        typeViewHolder.myAddDelView.setOnItemClick(new MyAddDelView.OnItemClick() {            @Override            public void onItemAddClick(int count) {                if (itemBean.isCb()) {                    Eventprice eventprice = new Eventprice();                    eventprice.setPrice(Integer.parseInt(itemBean.getPrice()));                    eventprice.setCount(1);                    EventBus.getDefault().post(eventprice);                }else{                    Toast.makeText(context,"请勾选",Toast.LENGTH_LONG).show();                    typeViewHolder.myAddDelView.setCount();                }            }            @Override            public void onItemDelClick(int count) {                if (itemBean.isCb()) {                    Eventprice eventprice = new Eventprice();                    eventprice.setPrice(-Integer.parseInt(itemBean.getPrice()));                    eventprice.setCount(-1);                    int count1 = eventprice.getCount();                    if (count1<0){                        count1=1;                    }                    EventBus.getDefault().post(eventprice);                }else{                    Toast.makeText(context,"请勾选",Toast.LENGTH_LONG).show();                    typeViewHolder.myAddDelView.setCount();                }            }        });        typeViewHolder.checkbox.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                boolean checked = typeViewHolder.checkbox.isChecked();                  /*先判断点击的checkbox是否是选中状态,如果是,                则遍历其它checkbox,如果其它的checkbox都是选中状态则让全选被勾选上                */                if (checked) {                    itemBean.setCb(true);                    Eventprice eventprice = new Eventprice();                    eventprice.setPrice(Integer.parseInt(itemBean.getPrice()));                    eventprice.setCount(1);                    EventBus.getDefault().post(eventprice);                    if (isAll()) {                        //都选上                        Eventbus eventbus = new Eventbus();                        eventbus.setFlag(true);                        EventBus.getDefault().post(eventbus);                    }                } else {                    itemBean.setCb(false);                    Eventbus eventbus = new Eventbus();                    eventbus.setFlag(false);                    EventBus.getDefault().post(eventbus);                    Eventprice eventprice = new Eventprice();                    eventprice.setCount(-1);                    eventprice.setPrice(-Integer.parseInt(itemBean.getPrice()));                    EventBus.getDefault().post(eventprice);                }            }        });    }    /**     * 全选     *     * @return     */    public boolean isAll() {        for (ItemBean itemBean : list) {            if (!itemBean.isCb()) {                return false;            }        }        return true;    }    @Override    public int getItemCount() {        return list.size();    }    private class TypeViewHolder extends RecyclerView.ViewHolder {        private TextView textViewname;        private TextView textViewprice;        private CheckBox checkbox;        private MyAddDelView myAddDelView;        private LinearLayout linearLayout;        public TypeViewHolder(View itemView) {            super(itemView);            textViewname = itemView.findViewById(R.id.tv_name);            textViewprice = itemView.findViewById(R.id.tv_price);            checkbox = itemView.findViewById(R.id.cb);            linearLayout = itemView.findViewById(R.id.ll);            myAddDelView = itemView.findViewById(R.id.mydv);        }    }    public void cbChecked(boolean fiag) {        Eventprice eventprice2 = new Eventprice();        eventprice2.setFlag(true);        EventBus.getDefault().post(eventprice2);        for (ItemBean itemBean : list) {            if (fiag) {                itemBean.setCb(fiag);                Eventprice eventprice = new Eventprice();                eventprice.setCount(1);                eventprice.setPrice(Integer.parseInt(itemBean.getPrice()));                EventBus.getDefault().post(eventprice);            } else {                itemBean.setCb(false);                Eventprice eventprice1 = new Eventprice();                eventprice1.setCount(-1);                eventprice1.setPrice(-Integer.parseInt(itemBean.getPrice()));                EventBus.getDefault().post(eventprice1);            }            notifyDataSetChanged();        }    }    //反选    public void reverseSelect() {        for (ItemBean itemBean : list) {            itemBean.setCb(!itemBean.isCb());            notifyDataSetChanged();        }    }//    private int Tataocount(){//        count = 0;//        for (int i=0;i<list.size();i++){////        }////        return 0;//    }    //个数  private int Tataocount() {        count = 0;//        for (ItemBean itemBean : list) {//            if (itemBean.isCb()) {//                count++;//            }//        }//      notifyDataSetChanged();      for (int i=0;i<list.size();i++){          if (list.get(i).isCb()){              count++;          }      }        return count;    }}