1. 程式人生 > >購物車的主方法——————————————購物車

購物車的主方法——————————————購物車

public class MainActivity extends AppCompatActivity implements BaseView<String> {

    private RecyclerView mRlvShopcart;     /**      * 全選      */     private TextView mTvShopcartAddselect;     /**      * 總價:¥0      */     private TextView mTvShopcartTotalprice;     /**      * 共0件商品      */     private TextView mTvShopcartTotalnum;     /**      * 去結算      */     private TextView mTvShopcartSubmit;     private LinearLayout mLlPay;     private RelativeLayout mRlShopcartHave;     private PresenetrImpl presenetr;     private boolean flag;     private GouAdapter gouAdapter;     private List<NewaBean.DataBean> data;     private int total = 0;

    @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main); //        初始化控制元件         initView();

//        註冊Eventbus         EventBus.getDefault().register(this);

//        初始化P層         presenetr = new PresenetrImpl();

//        繫結         presenetr.onAttachView(this);

        presenetr.getData();

    }

    private void initView() {         mRlvShopcart =  findViewById(R.id.rlv_shopcart);         mTvShopcartAddselect = (TextView) findViewById(R.id.tv_shopcart_addselect);         mTvShopcartTotalprice = (TextView) findViewById(R.id.tv_shopcart_totalprice);         mTvShopcartTotalnum = (TextView) findViewById(R.id.tv_shopcart_totalnum);         mTvShopcartSubmit = (TextView) findViewById(R.id.tv_shopcart_submit);         mLlPay = (LinearLayout) findViewById(R.id.ll_pay);         mRlShopcartHave = (RelativeLayout) findViewById(R.id.rl_shopcart_have);     }

    @Override     public void onSuccess(final String s) {             runOnUiThread(new Runnable() {                 @Override                 public void run() { //                    Toast.makeText(MainActivity.this, s, Toast.LENGTH_SHORT).show();

//                    獲取Bean                     Gson gson = new Gson();                     NewaBean newaBean = gson.fromJson(s, NewaBean.class);                     data = newaBean.getData();

//                  展示                     mRlvShopcart.setLayoutManager(new LinearLayoutManager(MainActivity.this));                     gouAdapter = new GouAdapter(MainActivity.this, data);                     mRlvShopcart.setAdapter(gouAdapter);

                    selectAll(data);

                    mTvShopcartAddselect.setOnClickListener(new View.OnClickListener() {                         @Override                         public void onClick(View v) {                             flag = !flag;

                            selectAll(data);                         }                     });

                }             });     }

    private void selectAll(List<NewaBean.DataBean> data) {         if (flag){             mTvShopcartAddselect.setCompoundDrawablesWithIntrinsicBounds(R.drawable.shopcart_selected,0,0,0);             for (int i = 0; i < data.size(); i++) {                 for (int j = 0; j < data.get(i).getList().size(); j++) {                     data.get(i).setSelect(true);                     data.get(i).getList().get(j).setSelected(1);                 }             }         }else{             mTvShopcartAddselect.setCompoundDrawablesWithIntrinsicBounds(R.drawable.shopcart_unselected,0,0,0);             for (int i = 0; i < data.size(); i++) {                 for (int j = 0; j < data.get(i).getList().size(); j++) {                     data.get(i).setSelect(false);                     data.get(i).getList().get(j).setSelected(0);                 }             }         }         EventBus.getDefault().post(new MyMessage("2"));         gouAdapter.notifyDataSetChanged();     }

    @Override     public void onErrer() {

    }

//    銷燬

    @Override     protected void onDestroy() {         super.onDestroy();

        if (presenetr.isAttachView()){             presenetr.onDestory();         }

        if (EventBus.getDefault().isRegistered(this)){             EventBus.getDefault().unregister(this);         }     }

        @Subscribe(threadMode = ThreadMode.MAIN)     public void AllPrice(MyMessage myMessage){

        total = 0;             for (int i = 0; i < data.size(); i++) {                 for (int j = 0; j < data.get(i).getList().size(); j++) {

                    if (data.get(i).getList().get(j).getSelected() % 2 ==1){                         total += (int) (data.get(i).getList().get(j).getNum() * data.get(i).getList().get(j).getPrice());                     }

                }             }

            mTvShopcartTotalprice.setText(String.valueOf(total));     }

}