//主页面
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private String url="http://www.zhaoapi.cn/product/getCarts?uid=71";
private RecyclerView recycle_01;
private ImageView img_01;
private RecycyAdapter recycyAdapter;
private List<Bean.DataBean> list=new ArrayList<>();
private TextView all_price_txt,sum_price_txt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化控件
all_price_txt=(TextView)findViewById(R.id.all_price);
sum_price_txt=(TextView)findViewById(R.id.sum_price);
findViewById(R.id.layout_all).setOnClickListener(this);
recycle_01=(RecyclerView)findViewById(R.id.recycle_01);
img_01=(ImageView)findViewById(R.id.img_01);
//创建适配器
recycyAdapter = new RecycyAdapter(this);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recycle_01.setLayoutManager(linearLayoutManager);
recycle_01.setAdapter(recycyAdapter);
//联网请求
doHttp();
//单击事件
recycyAdapter.result(new RecycyAdapter.HttpLister() {
@Override
public void success(List<Bean.DataBean> list) {
double price=0;
int num=0;
int numall=0;
for (int i = 0; i < list.size(); i++) {
List<Bean.DataBean.ListBean> listall = list.get(i).getList();
for (int a=0;a<listall.size();a++){
numall++;
if (listall.get(a).isClick()){
price=price+listall.get(a).getPrice();
num++;
}
}
}
if (num<numall){
isCheck=true;
img_01.setImageResource(R.drawable.cricle_no);
}else {
isCheck=false;
img_01.setImageResource(R.drawable.cricle_yes);
}
all_price_txt.setText(price+"总价");
sum_price_txt.setText(num+"去购买");
}
});
}
private void doHttp() {
OkHttp1.getInstance().get(url).result(new OkHttp1.HttpLister() {
@Override
public void success(String data) {
list = new Gson().fromJson(data, Bean.class).getData();
recycyAdapter.setList(list);
}
});
}
private boolean isCheck=true;
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.layout_all:
if (isCheck){
img_01.setImageResource(R.drawable.cricle_yes);
isCheck=false;
xunhuan(true);
}else{
img_01.setImageResource(R.drawable.cricle_no);
isCheck=true;
xunhuan(false);
}
break;
}
}
//选中状态
private void xunhuan(boolean bool) {
double allpric=0;
int num=0;
for (int i=0;i<list.size();i++){
List<Bean.DataBean.ListBean> listAll = list.get(i).getList();
for (int a=0;a<listAll.size();a++){
listAll.get(a).setClick(bool);
allpric=allpric+listAll.get(a).getPrice();
num++;
}
}
if (bool){
all_price_txt.setText("合计:"+allpric);
sum_price_txt.setText("去结算("+num+")");
}else {
all_price_txt.setText("合计:0.00");
sum_price_txt.setText("去结算(0)");
}
recycyAdapter.notifyDataSetChanged();
}
}
//商家的适配器
public class RecycyAdapter extends RecyclerView.Adapter<RecycyAdapter.MyViewHolder>{
private Context context;
private List<Bean.DataBean> list=new ArrayList<>();
public RecycyAdapter(Context context) {
this.context=context;
}
@Override
public RecycyAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view=View.inflate(context, R.layout.recyc_layout,null);
MyViewHolder myViewHolder = new MyViewHolder(view);
return myViewHolder;
}
@Override
public void onBindViewHolder(RecycyAdapter.MyViewHolder holder, int position) {
//设置title
holder.title.setText(list.get(position).getSellerName());
//获取商品的集合
List<Bean.DataBean.ListBean> listAll = list.get(position).getList();
//设置适配器
RecycyChildAdapter recycyChildAdapter = new RecycyChildAdapter(context,listAll);
//设置布局管理器
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context);
//设置方向
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
//把布局管理器设置给recycle
holder.recycler_02.setLayoutManager(linearLayoutManager);
//把适配器设置给recycle
holder.recycler_02.setAdapter(recycyChildAdapter);
//接口回调
recycyChildAdapter.setListener(new RecycyChildAdapter.ShopCallBackListener() {
@Override
public void callBack() {
lister.success(list);
}
});
}
@Override
public int getItemCount() {
return list.size();
}
public void setList(List<Bean.DataBean> list) {
this.list = list;
notifyDataSetChanged();
}
public class MyViewHolder extends RecyclerView.ViewHolder {
TextView title;
RecyclerView recycler_02;
public MyViewHolder(View itemView) {
super(itemView);
title=(TextView)itemView.findViewById(R.id.title);
recycler_02=(RecyclerView)itemView.findViewById(R.id.recycler_02);
}
}
private HttpLister lister;
public void result(HttpLister lister){
this.lister=lister;
}
public interface HttpLister{
void success(List<Bean.DataBean> list);
}
}
//商品的适配器
public class RecycyChildAdapter extends RecyclerView.Adapter<RecycyChildAdapter.MyViewHolder>{
private Context context;
private List<Bean.DataBean.ListBean> listAll;
public RecycyChildAdapter(Context context, List<Bean.DataBean.ListBean> listAll) {
this.context=context;
this.listAll=listAll;
}
@Override
public RecycyChildAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view=View.inflate(context, R.layout.recyc_child_layout,null);
MyViewHolder myViewHolder = new MyViewHolder(view);
return myViewHolder;
}
@Override
public void onBindViewHolder(RecycyChildAdapter.MyViewHolder holder, final int position) {
holder.title2.setText(listAll.get(position).getTitle());
Picasso.with(context).load(listAll.get(position).getImages().split("\\|")[0]).fit().into(holder.img);
if (listAll.get(position).isClick()){
holder.check.setImageResource(R.drawable.cricle_yes);
}else {
holder.check.setImageResource(R.drawable.cricle_no);
}
//点击商品选中
holder.check.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (listAll.get(position).isClick()){
listAll.get(position).setClick(false);
}else {
listAll.get(position).setClick(true);
}
listener.callBack();
notifyItemChanged(position);
}
});
}
@Override
public int getItemCount() {
return listAll.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder {
ImageView check;
TextView title2;
ImageView img;
public MyViewHolder(View itemView) {
super(itemView);
img=(ImageView)itemView.findViewById(R.id.img);
title2=(TextView)itemView.findViewById(R.id.title2);
check=(ImageView)itemView.findViewById(R.id.check);
}
}
//传递接口
private ShopCallBackListener listener;
public void setListener(ShopCallBackListener listener){
this.listener=listener;
}
public interface ShopCallBackListener{
void callBack();
}
}