//商家adapter
package com.bw.lixianfeng.adapter;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.LinearLayoutManager;
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.TextView;
import com.bw.lixianfeng.R;
import com.bw.lixianfeng.bean.ShopCarBean;
import com.jcodecraeer.xrecyclerview.XRecyclerView;
import java.util.List;
public class ShopCarAdapter extends XRecyclerView.Adapter {
private List<ShopCarBean.DataBean> list;
private Context context;
public ShopCarAdapter(List<ShopCarBean.DataBean> list) {
this.list = list;
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
context = viewGroup.getContext();
if (i==1){
View view = LayoutInflater.from(context).inflate(R.layout.layout_adapter, viewGroup, false);
ViewHolder viewHolder=new ViewHolder(view);
return viewHolder;
}else {
View view = LayoutInflater.from(context).inflate(R.layout.layout_adapter2, viewGroup, false);
ViewHolder2 viewHolder=new ViewHolder2(view);
return viewHolder;
}
}
public List<ShopCarBean.DataBean> getList() {
return list;
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
int itemViewType = getItemViewType(i);
if(itemViewType==1){
ViewHolder viewHolder1= (ViewHolder) viewHolder;
viewHolder1.name.setText(list.get(i).getSellerName());
viewHolder1.checkBox.setChecked(false);
List<ShopCarBean.DataBean.ListBean> listBean = list.get(i).getListBean();
viewHolder1.xRecyclerView.setLayoutManager(new LinearLayoutManager(context));
ShopCarChildAdapter shopCarChildAdapter=new ShopCarChildAdapter(listBean);
((ViewHolder) viewHolder).xRecyclerView.setAdapter(shopCarChildAdapter);
}else {
ViewHolder2 viewHolder2= (ViewHolder2) viewHolder;
viewHolder2.homeId.setText(list.get(i).getSellerid());
}
}
@Override
public int getItemCount() {
return list.size();
}
@Override
public int getItemViewType(int position) {
List<ShopCarBean.DataBean.ListBean> listBean = list.get(position).getListBean();
if(listBean.size()==0){
return 0;
}else {
return 1;
}
}
public class ViewHolder extends XRecyclerView.ViewHolder{
private final CheckBox checkBox;
private final TextView name;
private final XRecyclerView xRecyclerView;
public ViewHolder(@NonNull View itemView) {
super(itemView);
checkBox = itemView.findViewById(R.id.checkBox);
name = itemView.findViewById(R.id.name);
xRecyclerView = itemView.findViewById(R.id.xRecyclerView);
}
}
public class ViewHolder2 extends XRecyclerView.ViewHolder{
private final TextView homeId;
public ViewHolder2(@NonNull View itemView) {
super(itemView);
homeId = itemView.findViewById(R.id.homeId);
}
}
}
//商品adapter
package com.bw.lixianfeng.adapter;
import android.content.Context;
import android.net.Uri;
import android.support.annotation.NonNull;
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.TextView;
import android.widget.Toast;
import com.bw.lixianfeng.AdapterEvent;
import com.bw.lixianfeng.AddSubEvent;
import com.bw.lixianfeng.R;
import com.bw.lixianfeng.bean.JiaBean;
import com.bw.lixianfeng.bean.JianBean;
import com.bw.lixianfeng.bean.ShopCarBean;
import com.facebook.drawee.view.SimpleDraweeView;
import com.jcodecraeer.xrecyclerview.XRecyclerView;
import org.greenrobot.eventbus.EventBus;
import java.util.List;
public class ShopCarChildAdapter extends XRecyclerView.Adapter<ShopCarChildAdapter.ViewHolder> {
private List<ShopCarBean.DataBean.ListBean> listBean;
private Context context;
private ShopCarBean.DataBean.ListBean listBean1;
public ShopCarChildAdapter(List<ShopCarBean.DataBean.ListBean> listBean) {
this.listBean = listBean;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
context = viewGroup.getContext();
View view = LayoutInflater.from(context).inflate(R.layout.layout_adapter_child, viewGroup, false);
ViewHolder viewHolder=new ViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(@NonNull final ViewHolder viewHolder, int i) {
listBean1 = listBean.get(i);
int selected = listBean.get(i).getSelected();
if(selected==0){
// listBean1.setSelected(1);
viewHolder.checkChildBox.setChecked(false);
}else {
// listBean1.setSelected(0);
viewHolder.checkChildBox.setChecked(true);
}
viewHolder.childName.setText(listBean1.getSubhead());
viewHolder.price.setText(listBean1.getPrice()+"");
viewHolder.num.setText(""+listBean1.getNum());
String images = listBean1.getImages();
String[] split = images.split("\\|");
Uri uri=Uri.parse(split[0]);
viewHolder.simpleDraweeView.setImageURI(uri);
viewHolder.checkChildBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EventBus.getDefault().post(new AdapterEvent(listBean1.getSelected()));
}
});
viewHolder.jian.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
JianBean jianBean=new JianBean(listBean1.getPscid(),listBean1.getSellerid());
EventBus.getDefault().post(jianBean);
}
});
viewHolder.add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
JiaBean jiaBean=new JiaBean(listBean1.getPscid(),listBean1.getSellerid());
EventBus.getDefault().post(jiaBean);
}
});
viewHolder.num.setText(listBean1.getNum()+"");
}
@Override
public int getItemCount() {
return listBean.size();
}
public class ViewHolder extends XRecyclerView.ViewHolder{
private final TextView childName;
private final TextView price;
private final CheckBox checkChildBox;
private final SimpleDraweeView simpleDraweeView;
private final TextView jian;
private final TextView num;
private final TextView add;
public ViewHolder(@NonNull View itemView) {
super(itemView);
childName = itemView.findViewById(R.id.childName);
price = itemView.findViewById(R.id.price);
checkChildBox = itemView.findViewById(R.id.checkChildBox);
simpleDraweeView = itemView.findViewById(R.id.simpleDraweeView);
jian = itemView.findViewById(R.id.jian);
num = itemView.findViewById(R.id.num);
add = itemView.findViewById(R.id.add);
}
}
}
//activity代码
package com.bw.lixianfeng;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import android.widget.CheckBox;
import android.widget.TextView;
import android.widget.Toast;
import com.bw.lixianfeng.adapter.ShopCarAdapter;
import com.bw.lixianfeng.bean.JiaBean;
import com.bw.lixianfeng.bean.JianBean;
import com.bw.lixianfeng.bean.ShopCarBean;
import com.bw.lixianfeng.present.ShopCarPresent;
import com.bw.lixianfeng.view.ShopCarView;
import com.jcodecraeer.xrecyclerview.XRecyclerView;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.Unbinder;
public class MainActivity extends AppCompatActivity implements ShopCarView {
@BindView(R.id.xRecyclerView)
XRecyclerView xRecyclerView;
@BindView(R.id.heJi)
TextView heJi;
@BindView(R.id.checkboxAll)
CheckBox checkboxAll;
private Unbinder bind;
private List<ShopCarBean.DataBean> list;
private ShopCarPresent shopCarPresent;
private ShopCarAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EventBus.getDefault().register(this);
bind = ButterKnife.bind(this);
initData();
//全选
checkboxAll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for (int i = 0; i < list.size(); i++) {
boolean isChecked = list.get(i).isChecked();
if(isChecked){
list.get(i).setChecked(false);
}else {
list.get(i).setChecked(true);
}
List<ShopCarBean.DataBean.ListBean> listBean = list.get(i).getListBean();
for (int j = 0; j < listBean.size(); j++) {
int selected = listBean.get(j).getSelected();
if(selected==1){
listBean.get(j).setSelected(0);
}else {
listBean.get(j).setSelected(1);
}
}
}
adapter.notifyDataSetChanged();
getTotal();
}
});
}
private void initData() {
shopCarPresent = new ShopCarPresent(this);
shopCarPresent.getShopCar();
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void setAddMethod(JiaBean jiaBean){
List<ShopCarBean.DataBean> list = adapter.getList();
for (int i = 0; i < list.size(); i++) {
ShopCarBean.DataBean dataBean = list.get(i);
String sellerid = dataBean.getSellerid();
int i1 = Integer.parseInt(sellerid);
if (i1==jiaBean.getGroupId()){
List<ShopCarBean.DataBean.ListBean> listBean = dataBean.getListBean();
for (int i2 = 0; i2 < listBean.size(); i2++) {
ShopCarBean.DataBean.ListBean listBean1 = listBean.get(i2);
int pscid = listBean1.getPscid();
if (pscid==jiaBean.getChildId()) {
int num = listBean1.getNum();
listBean1.setNum(num+1);
}
}
}
}
adapter.notifyDataSetChanged();
getTotal();
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void setJianMethod(JianBean jianBean){
List<ShopCarBean.DataBean> list = adapter.getList();
for (int i = 0; i < list.size(); i++) {
ShopCarBean.DataBean dataBean = list.get(i);
String sellerid = dataBean.getSellerid();
int i1 = Integer.parseInt(sellerid);
if(i1==jianBean.getGroupId()){
List<ShopCarBean.DataBean.ListBean> listBean = dataBean.getListBean();
for (int i2 = 0; i2 < listBean.size(); i2++) {
ShopCarBean.DataBean.ListBean listBean1 = listBean.get(i2);
int pscid = listBean1.getPscid();
if (pscid==jianBean.getChildId()){
int num = listBean1.getNum();
listBean1.setNum(num-1);
}
}
}
}
adapter.notifyDataSetChanged();
getTotal();
}
@Override
public void onSuccess(List<ShopCarBean.DataBean> list2) {
list = list2;
xRecyclerView.setLayoutManager(new LinearLayoutManager(this));
adapter = new ShopCarAdapter(list);
xRecyclerView.setAdapter(adapter);
}
@Override
public void onFailed(String msg) {
Toast.makeText(this, msg, Toast.LENGTH_SHORT);
}
private void getTotal() {
double total = 0;
for (int i = 0; i < list.size(); i++) {
boolean checked = list.get(i).isChecked();
if (checked) {
List<ShopCarBean.DataBean.ListBean> listBean = list.get(i).getListBean();
for (int j = 0; j < listBean.size(); j++) {
double bargainPrice = listBean.get(j).getBargainPrice();
total += bargainPrice * listBean.get(j).getNum();
}
}
}
heJi.setText("合计:¥" + total);
}
@Override
protected void onDestroy() {
super.onDestroy();
bind.unbind();
shopCarPresent.onDestroy();
EventBus.getDefault().unregister(this);
}
}
//jiabean(event)
package com.bw.lixianfeng.bean;
public class JiaBean {
int childId;
int groupId;
public JiaBean(int childId, int groupId) {
this.childId = childId;
this.groupId = groupId;
}
public int getChildId() {
return childId;
}
public void setChildId(int childId) {
this.childId = childId;
}
public int getGroupId() {Recycler
return groupId;
}
public void setGroupId(int groupId) {
this.groupId = groupId;
}
}