public class CartActivity extends AppCompatActivity implements IMainActivity, View.OnClickListener{
private CartExpanableListview expanableListview;
private CartPresenter cartPresenter;
private CheckBox check_all;
private TextView text_total;
private TextView text_buy;
private CartBean cartBean;
private RelativeLayout relative_progress;
private MyAdapter myAdapter;
private LinearLayout linear_bottom;
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
if (msg.what == 0){
CountPriceBean countPriceBean = (CountPriceBean) msg.obj;
text_total.setText("合计:¥"+countPriceBean.getPriceString());
text_buy.setText("去结算("+countPriceBean.getCount()+")");
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.cart_activity_layout);
check_all = findViewById(R.id.check_all);
text_total = findViewById(R.id.text_total);
text_buy = findViewById(R.id.text_buy);
expanableListview = findViewById(R.id.expanable_listview);
relative_progress = findViewById(R.id.relative_progress);
linear_bottom = findViewById(R.id.linear_layout);
//去掉默认的指示器
expanableListview.setGroupIndicator(null);
cartPresenter = new CartPresenter(this);
//1.点击全选:选中/未选中...调用适配器中的方法...myAdapter.setIsCheckAll(true);来设置所有的一级和二级是否选中,计算
check_all.setOnClickListener(this);
text_buy.setOnClickListener(this);
}
@Override
protected void onResume() {
super.onResume();
relative_progress.setVisibility(View.VISIBLE);
//请求数据
cartPresenter.getCartData(ApiUtil.cartUrl);
}
@Override
public void getSuccessCartData(CartBean cartBean) {
relative_progress.setVisibility(View.GONE);
this.cartBean = cartBean;
if (cartBean != null){
//显示下面的
linear_bottom.setVisibility(View.VISIBLE);
//1.根据组中子条目是否选中,,,决定该组是否选中...初始化一下每一组中isGroupCheck这个数据
for (int i = 0;i<cartBean.getData().size();i++){
if (isAllChildInGroupSelected(i)){
//更改i位置 组的选中状态
cartBean.getData().get(i).setGroupChecked(true);
}
}
//2.根据每一个组是否选中的状态,,,初始化全选是否选中
check_all.setChecked(isAllGroupChecked());
//设置适配器
myAdapter = new MyAdapter(CartActivity.this, cartBean,handler,cartPresenter,relative_progress);
expanableListview.setAdapter(myAdapter);
//展开
for (int i= 0;i<cartBean.getData().size();i++){
expanableListview.expandGroup(i);
}
//3.根据子条目是否选中 初始化价格和数量
myAdapter.sendPriceAndCount();
}else {
//隐藏下面的全选.... 等
linear_bottom.setVisibility(View.GONE);
//显示去逛逛,,,添加购物车
Toast.makeText(CartActivity.this,"购物车为空,去逛逛",Toast.LENGTH_SHORT).show();
}
}
/**
* 所有的一级列表是否选中
*/
private boolean isAllGroupChecked() {
for (int i =0;i<cartBean.getData().size();i++){
if (! cartBean.getData().get(i).isGroupChecked()){//代表一级列表有没选中的
return false;
}
}
return true;
}
/**
* 判断当前组里面所有的子条目是否选中
* @param groupPosition
* @return
*/
private boolean isAllChildInGroupSelected(int groupPosition) {
for (int i= 0;i<cartBean.getData().get(groupPosition).getList().size();i++){
//只要有一个没选中就返回false
if (cartBean.getData().get(groupPosition).getList().get(i).getSelected() ==0){
return false;
}
}
return true;
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.check_all:
myAdapter.setAllChildState(check_all.isChecked());
break;
case R.id.text_buy://去结算...试一下创建订单
break;
}
}
}
private CartExpanableListview expanableListview;
private CartPresenter cartPresenter;
private CheckBox check_all;
private TextView text_total;
private TextView text_buy;
private CartBean cartBean;
private RelativeLayout relative_progress;
private MyAdapter myAdapter;
private LinearLayout linear_bottom;
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
if (msg.what == 0){
CountPriceBean countPriceBean = (CountPriceBean) msg.obj;
text_total.setText("合计:¥"+countPriceBean.getPriceString());
text_buy.setText("去结算("+countPriceBean.getCount()+")");
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.cart_activity_layout);
check_all = findViewById(R.id.check_all);
text_total = findViewById(R.id.text_total);
text_buy = findViewById(R.id.text_buy);
expanableListview = findViewById(R.id.expanable_listview);
relative_progress = findViewById(R.id.relative_progress);
linear_bottom = findViewById(R.id.linear_layout);
//去掉默认的指示器
expanableListview.setGroupIndicator(null);
cartPresenter = new CartPresenter(this);
//1.点击全选:选中/未选中...调用适配器中的方法...myAdapter.setIsCheckAll(true);来设置所有的一级和二级是否选中,计算
check_all.setOnClickListener(this);
text_buy.setOnClickListener(this);
}
@Override
protected void onResume() {
super.onResume();
relative_progress.setVisibility(View.VISIBLE);
//请求数据
cartPresenter.getCartData(ApiUtil.cartUrl);
}
@Override
public void getSuccessCartData(CartBean cartBean) {
relative_progress.setVisibility(View.GONE);
this.cartBean = cartBean;
if (cartBean != null){
//显示下面的
linear_bottom.setVisibility(View.VISIBLE);
//1.根据组中子条目是否选中,,,决定该组是否选中...初始化一下每一组中isGroupCheck这个数据
for (int i = 0;i<cartBean.getData().size();i++){
if (isAllChildInGroupSelected(i)){
//更改i位置 组的选中状态
cartBean.getData().get(i).setGroupChecked(true);
}
}
//2.根据每一个组是否选中的状态,,,初始化全选是否选中
check_all.setChecked(isAllGroupChecked());
//设置适配器
myAdapter = new MyAdapter(CartActivity.this, cartBean,handler,cartPresenter,relative_progress);
expanableListview.setAdapter(myAdapter);
//展开
for (int i= 0;i<cartBean.getData().size();i++){
expanableListview.expandGroup(i);
}
//3.根据子条目是否选中 初始化价格和数量
myAdapter.sendPriceAndCount();
}else {
//隐藏下面的全选.... 等
linear_bottom.setVisibility(View.GONE);
//显示去逛逛,,,添加购物车
Toast.makeText(CartActivity.this,"购物车为空,去逛逛",Toast.LENGTH_SHORT).show();
}
}
/**
* 所有的一级列表是否选中
*/
private boolean isAllGroupChecked() {
for (int i =0;i<cartBean.getData().size();i++){
if (! cartBean.getData().get(i).isGroupChecked()){//代表一级列表有没选中的
return false;
}
}
return true;
}
/**
* 判断当前组里面所有的子条目是否选中
* @param groupPosition
* @return
*/
private boolean isAllChildInGroupSelected(int groupPosition) {
for (int i= 0;i<cartBean.getData().get(groupPosition).getList().size();i++){
//只要有一个没选中就返回false
if (cartBean.getData().get(groupPosition).getList().get(i).getSelected() ==0){
return false;
}
}
return true;
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.check_all:
myAdapter.setAllChildState(check_all.isChecked());
break;
case R.id.text_buy://去结算...试一下创建订单
break;
}
}
}