您的位置:首页 > 其它

购物车二级列表适配器

2017-12-17 20:48 405 查看
  //当前类名 :
CarExpandAdapter
extends BaseExpandableListAdapter

package wld.bawei.com.myjindong.Adapter;

import android.content.Context;
import android.content.SharedPreferences;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.ImageView;
import android.widget.TextView;

import com.bumptech.glide.Glide;

import java.util.List;

import wld.bawei.com.myjindong.Bean.Query_bean;
import wld.bawei.com.myjindong.DeleteMvp.DeletePresenter;
import wld.bawei.com.myjindong.DeleteMvp.DeleteView;
import wld.bawei.com.myjindong.Fragment.Shopping;
import wld.bawei.com.myjindong.R;

/**
* Created by 大金鑫 on 2017/12/15.
*/

public class CarExpandAdapterextends BaseExpandableListAdapter {
private List<Query_bean.DataBean> data;
private Context context;
public Shopping shopping;
private RecyclerView carsysler;
TextView tv_commodity_name;
ImageView iv_show_pic;
TextView tv_commodity_price;
TextView tv_commodity_show_num;
TextView tv_commodity_num;
CheckBox ck_chose;
Button btn_commodity_delete;
TextView iv_sub;
TextView iv_add;
priva
4000
te int
num;
private int numj;
public static boolean flog;
public CarExpandAdapter(List<Query_bean.DataBean> data, Context context, Shopping shopping){
this.context=context;
this.data=data;
this.shopping=shopping;
}
@Override
public int getGroupCount() {
return data != null ? data.size() : 0;
}

@Override
public int getChildrenCount(int i) {
return data.get(i).getList().size();
}

@Override
public Object getGroup(int i) {
return data.get(i);
}

@Override
public Object getChild(int i, int i1) {
return data.get(i).getList().get(i);
}

@Override
public long getGroupId(int i) {
return i;
}

@Override
public long getChildId(int i, int i1) {
return i1;
}

@Override
public boolean hasStableIds() {
return false;
}

@Override
public View getGroupView(final int i, boolean b, View view, ViewGroup viewGroup) {
View inflate = View.inflate(context, R.layout.shop_car_group, null);
TextView tv = inflate.findViewById(R.id.cartv);
final CheckBox ck_cargroup = inflate.findViewById(R.id.ck_cargroup);
ck_cargroup.setChecked(true);
tv.setText(data.get(i).getSellerName());
if(data.get(i).getFlog()){
ck_cargroup.setChecked(true);
}else{
ck_cargroup.setChecked(false);
}
ck_cargroup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Group布尔值变成选中状态
data.get(i).setFlog(ck_cargroup.isChecked());
//遍历Group集合
for (int i = 0; i < data.size(); i++) {
//如果有一个未选中 全选变成false并跳出
if(!data.get(i).getFlog()){
shopping.Gaibian(false);
break;
}else{//全部选中 全选变成true
shopping.Gaibian(true);
}
}
//Child集合布尔值为选中的状态
for (int j=0;j<data.get(i).getList().size();j++){
data.get(i).getList().get(j).setChoosed(ck_cargroup.isChecked());
}
//刷新适配器
notifyDataSetChanged();
//调用计算的方法
shopping.js();
}
});
return inflate;
}

@Override
public View getChildView(final int i, final int i1, boolean b, View view, ViewGroup viewGroup) {
View itemView = View.inflate(context, R.layout.shop_car_item, null);
tv_commodity_name = itemView.findViewById(R.id.tv_commodity_name);
tv_commodity_name.setText(data.get(i).getList().get(i1).getTitle());
iv_show_pic=itemView.findViewById(R.id.iv_show_pic);
String images = data.get(i).getList().get(i1).getImages();
String[] split = images.split("\\|");
Glide.with(context).load(split[0]).into(iv_show_pic);
tv_commodity_price= itemView.findViewById(R.id.tv_commodity_price);
tv_commodity_price.setText(data.get(i).getList().get(i1).getBargainPrice()+"");
tv_commodity_show_num=itemView.findViewById(R.id.tv_commodity_show_num);
tv_commodity_show_num.setText(data.get(i).getList().get(i1).getNum()+"");
tv_commodity_num= itemView.findViewById(R.id.tv_commodity_num);
tv_commodity_num.setText(data.get(i).getList().get(i1).getNum()+"");
ck_chose = itemView.findViewById(R.id.ck_chose);
ck_chose.setChecked(true);
btn_commodity_delete = itemView.findViewById(R.id.btn_commodity_delete);
iv_sub=itemView.findViewById(R.id.iv_sub);
iv_add=itemView.findViewById(R.id.iv_add);
//显示或隐藏删除按钮
if(flog){
btn_commodity_delete.setVisibility(View.VISIBLE);
}else{
btn_commodity_delete.setVisibility(View.GONE);
}
//子条目全选
if(data.get(i).getList().get(i1).isChoosed()){
ck_chose.setChecked(true);
}else{
ck_chose.setChecked(false);
}

ck_chose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Child布尔值变成选中状态
data.get(i).getList().get(i1).setChoosed(((CheckBox)view).isChecked());
//遍历Child集合
for (int i=0;i<data.size();i++){
for (int j=0;j<data.get(i).getList().size();j++){
//如果有一个未选中 全选与商家按钮变成false并跳出
if(!data.get(i).getList().get(j).isChoosed()){
data.get(i).setFlog(false);
shopping.Gaibian(false);
break;
}else{//全部选中 全选与商家按钮变成true
data.get(i).setFlog(true);
shopping.Gaibian(true);
}
}
}
//二次遍历
for([b]int p=0;p<data.size();p++){
boolean flag = data.get(p).getFlog();
if(flag){
shopping.Gaibian(true);
}else{
shopping.Gaibian(false);
break;
}
}
notifyDataSetChanged();
//计算加减
shopping.js();
}
});
iv_add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
num = data.get(i).getList().get(i1).getNum();
++num;
data.get(i).getList().get(i1).setNum(num);
tv_commodity_show_num.setText(data.get(i).getList().get(i1).getNum()+"");
shopping.js();
notifyDataSetChanged();
}
});
iv_sub.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
num = data.get(i).getList().get(i1).getNum();
if(num>1){
--num;
data.get(i).getList().get(i1).setNum(num);
tv_commodity_show_num.setText(data.get(i).getList().get(i1).getNum()+"");
shopping.js();
notifyDataSetChanged();
}
}
});
btn_commodity_delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
SharedPreferences myshared = context.getSharedPreferences("Myshared", Context.MODE_PRIVATE);
int uid = myshared.getInt("uid", 1);
if(!(uid==1)){
int pid = data.get(i).getList().get(i1).getPid();
DeletePresenter deletePresenter = new DeletePresenter(new DeleteView() {
@Override
public void onDeleteFailure(String error) {

}

@Override
public void onDeleteSuccesss(String code) {
data.get(i).getList().remove(i1);
if(data.get(i).getList().size()==0){
data.remove(i);
}
shopping.js();
notifyDataSetChanged();
}
});
deletePresenter.verfiy(uid+"",pid+"");
}
notifyDataSetChanged();
}
});
return itemView;
}
@Override
public boolean isChildSelectable(int i, int i1) {
return false;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: