activity页面的代码
public class MainActivity extends AppCompatActivity implements ExpandView {
private ExpandableListView expandableListView;
private CheckBox checkBox;
private com.example.mk.expandAdapder expandAdapder;
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ExpandProcenter expandProcenter = new ExpandProcenter(this);
expandProcenter.Procent("http://120.27.23.105/product/getCarts?source=android&uid=99");
initView();
}
//获取控件的方法
private void initView() {
expandableListView = findViewById(R.id.ev);
checkBox = findViewById(R.id.checkbox2);
textView = findViewById(R.id.zj);
//设置全选点击的监听
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
isCheckedAll(1);
Tobal();
} else {
isCheckedAll(0);
Tobal();
}
}
});
}
//mvp网络请求成功的方法
@Override
public void isOnSuccess(final List list) {
runOnUiThread(new Runnable() {
@Override
public void run() {
expandAdapder = new expandAdapder((ArrayList<Exapbean.DataBean>) list, MainActivity.this);
expandableListView.setAdapter(expandAdapder);
expandAdapder.setListener(new AddSubLinerLayout.OnLisenter() {
@Override
public void isListrner(View view, int num) {
Tobal();
}
});
for (int a = 0; a < expandAdapder.getGroupCount(); a++) {
expandableListView.expandGroup(a);
}
initClick();
}
});
}
@Override
public void isOnError(String error) {
}
//设置点击全选的方法
public void isCheckedAll(int s) {
int groupCount = expandAdapder.getGroupCount();
for (int i = 0; i < groupCount; i++) {
Exapbean.DataBean listbean = (Exapbean.DataBean) expandAdapder.getGroup(i);
List<Exapbean.DataBean.ListBean> list = listbean.getList();
for (int j = 0; j < list.size(); j++) {
Exapbean.DataBean.ListBean listBean1 = list.get(j);
listBean1.setSelected(s);
}
}
Tobal();
expandAdapder.notifyDataSetChanged();
}
//设计计算总价的方法
public void Tobal() {
double toble = 0;
int groupCount = expandAdapder.getGroupCount();
for (int i = 0; i < groupCount; i++) {
Exapbean.DataBean group = (Exapbean.DataBean) expandAdapder.getGroup(i);
List<Exapbean.DataBean.ListBean> list = group.getList();
for (int j = 0; j < list.size(); j++) {
Exapbean.DataBean.ListBean listBean = list.get(j);
boolean checked = listBean.isChecked();
if (checked) {
String bargainPrice = listBean.getBargainPrice();
double v = Double.parseDouble(bargainPrice);
toble += v * listBean.getNum();
}
}
}
textView.setText(toble+"元");
}
//设置子条目点击事件
public void initClick(){
expandableListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
Exapbean.DataBean.ListBean listBean = (Exapbean.DataBean.ListBean) expandAdapder.getChild(groupPosition, childPosition);
boolean checked = listBean.isChecked();
if (checked){
listBean.setSelected(0);
}else{
listBean.setSelected(1);
}
Tobal();
expandAdapder.notifyDataSetChanged();
return true;
}
});
}
}
//适配器
private ArrayList<Exapbean.DataBean> list;
private Context mCotext;
private AddSubLinerLayout.OnLisenter onLisenter;
public expandAdapder(ArrayList<Exapbean.DataBean> list, Context mCotext) {
this.list = list;
this.mCotext = mCotext;
}
@Override
public int getGroupCount() {
return list.size();
}
@Override
public int getChildrenCount(int groupPosition) {
return list.get(groupPosition).getList().size();
}
@Override
public Object getGroup(int groupPosition) {
return list.get(groupPosition);
}
@Override
public Object getChild(int groupPosition, int childPosition) {
return list.get(groupPosition).getList().get(childPosition);
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public boolean hasStableIds() {
return true;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
ViewHolder_group viewHolder_group = null;
if (convertView == null) {
viewHolder_group = new ViewHolder_group();
convertView = View.inflate(mCotext, R.layout.item_group, null);
viewHolder_group.checkBox = convertView.findViewById(R.id.checkbox2);
viewHolder_group.textView = convertView.findViewById(R.id.tv);
convertView.setTag(viewHolder_group);
} else {
viewHolder_group = (ViewHolder_group) convertView.getTag();
}
viewHolder_group.textView.setText(list.get(groupPosition).getSellerName());
// Exapbean.DataBean dataBean = list.get(groupPosition);
/* if (viewHolder_group.checkBox.isChecked()) {
viewHolder_group.checkBox.setChecked(true);
} else {
viewHolder_group.checkBox.setChecked(false);
}*/
return convertView;
}
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
ViewHolder_child viewHolder_child = null;
if (convertView == null) {
convertView = View.inflate(mCotext, R.layout.item_chide, null);
viewHolder_child = new ViewHolder_child();
viewHolder_child.checkBox1 = convertView.findViewById(R.id.cbx);
viewHolder_child.textView1 = convertView.findViewById(R.id.tv);
viewHolder_child.getTextView2 = convertView.findViewById(R.id.tv2);
viewHolder_child.addSubLinerLayout = convertView.findViewById(R.id.addsub);
viewHolder_child.imageView = convertView.findViewById(R.id.iv3);
convertView.setTag(viewHolder_child);
} else {
viewHolder_child = (ViewHolder_child) convertView.getTag();
}
viewHolder_child.textView1.setText(list.get(groupPosition).getList().get(childPosition).getSubhead());
viewHolder_child.getTextView2.setText(list.get(groupPosition).getList().get(childPosition).getBargainPrice());
final Exapbean.DataBean.ListBean listBean = list.get(groupPosition).getList().get(childPosition);
if (listBean.isChecked()) {
viewHolder_child.checkBox1.setChecked(true);
} else {
viewHolder_child.checkBox1.setChecked(false);
}
//viewHolder_child.checkBox1.setOnClickListener();
viewHolder_child.addSubLinerLayout.setOnLisenter(new AddSubLinerLayout.OnLisenter() {
@Override
public void isListrner(View view, int num) {
listBean.setNum(num);
if (onLisenter!=null){
onLisenter.isListrner(view,num);
}
}
});
String images = listBean.getImages();
for (int i1 = 0; i1 < images.length(); i1++) {
int i = images.indexOf("|");
if (i != -1) {
String substring = images.substring(0, i);
Picasso.with(mCotext).load(substring).into(viewHolder_child.imageView);
} else {
Picasso.with(mCotext).load(images).into(viewHolder_child.imageView);
}
}
final ViewHolder_child finalViewHolder_child = viewHolder_child;
return convertView;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
class ViewHolder_group {
CheckBox checkBox;
TextView textView;
}
class ViewHolder_child {
CheckBox checkBox1;
ImageView imageView;
TextView textView1;
TextView getTextView2;
AddSubLinerLayout addSubLinerLayout;
}
public void setListener(AddSubLinerLayout.OnLisenter onLisenter) {
this.onLisenter = onLisenter;
}
//自定义linerlayout布局
public class AddSubLinerLayout extends LinearLayout {
private TextView add;
private TextView number;
private TextView sub;
public AddSubLinerLayout(Context context) {
this(context, null);
}
public AddSubLinerLayout(Context context, AttributeSet attrs) {
this(context, attrs, -1);
}
public AddSubLinerLayout(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initView();
listener();
}
//获取控件的方法
public void initView() {
View view = View.inflate(getContext(), R.layout.addview, this);
sub = view.findViewById(R.id.sub);
number = view.findViewById(R.id.number);
add = view.findViewById(R.id.add);
number.setText(“1”);
}
public void listener(){
add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
add();
}
});
sub.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
sub();
}
});
}
//减法的监听方法
private void sub() {
String s = number.getText().toString();
int i = Integer.parseInt(s);
if (i<=1){
i–;
onChage(i);
}else{
Toast.makeText(getContext(),“不能再少了,亲”,Toast.LENGTH_SHORT).show();
}
}
//加法的监听的方法
private void add() {
String s = number.getText().toString();
int i = Integer.parseInt(s);
i++;
onChage(i);
}
private OnLisenter onLisenter;
public void setOnLisenter(OnLisenter onLisenter) {
this.onLisenter = onLisenter;
}
public void onChage(int nums){
number.setText(""+nums);
if (onLisenter!=null){
this.onLisenter.isListrner(this,nums);
}
}
public interface OnLisenter{
void isListrner(View view,int num);
}
}