商品分組

1.主佈局

<?xml version="1.0" encoding="utf-8"?>

<android.support.v7.widget.RecyclerView
    android:layout_width="100dp"
    android:layout_height="match_parent"
    android:id="@+id/left_recy"
    />
<android.support.v7.widget.RecyclerView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/right_recy"
    />

2.CallBack
package bw.com.yk;

import java.util.List;

import bw.com.yk.bean.LeftBean;

public interface CallBack {
void onSuccess(List<LeftBean.DataBean> list);
void onFailer(String error);
}

3.LeftView
package bw.com.yk.view;

import java.util.List;

import bw.com.yk.bean.LeftBean;

public interface LeftView {
void onSuccess(List<LeftBean.DataBean> list);
void onFailer(String error);
}

4.LeftModel

public class LeftModel {
private String path=“http://www.zhaoapi.cn/product/getCatagory”;
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
}
};
public void show(final CallBack callBack){
OkHttp.createget(path, new Callback() {
@Override
public void onFailure(Call call, IOException e) {

        }

        @Override
        public void onResponse(Call call, Response response) throws IOException {
            final String string = response.body().string();
            handler.post(new Runnable() {
                @Override
                public void run() {
                    Gson gson = new Gson();
                    LeftBean leftBean = gson.fromJson(string, LeftBean.class);
                    List<LeftBean.DataBean> data = leftBean.getData();
                    if (data!=null){
                        callBack.onSuccess(data);
                    }else {
                        callBack.onFailer("失敗 ");
                    }
                }
            });

        }
    });
}

}
5.LeftPresenter
public class LeftPresenter {
private LeftView leftView;
private LeftModel leftModel;

public LeftPresenter(LeftView leftView) {
    this.leftView = leftView;
    leftModel = new LeftModel();
}
public void showLeft(){
    leftModel.show(new CallBack() {
        @Override
        public void onSuccess(List<LeftBean.DataBean> list) {
            leftView.onSuccess(list);
        }

        @Override
        public void onFailer(String error) {
            leftView.onFailer(error);
        }
    });
}

}

5.1 LeftAdapter
public class LeftAdapter extends RecyclerView.Adapter {
private Context context;
private List<LeftBean.DataBean> list;

public LeftAdapter(Context context, List<LeftBean.DataBean> list) {
    this.context = context;
    this.list = list;
}

@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    View view =null;
    RecyclerView.ViewHolder viewHolder=null;
    view = View.inflate(context,R.layout.left_item,null);
    viewHolder = new LeftViewHolder(view);
    return viewHolder;
}

@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
    ((LeftViewHolder)viewHolder).textView.setText(list.get(i).getName());
}

@Override
public int getItemCount() {
    return list.size();
}
private class LeftViewHolder extends RecyclerView.ViewHolder {

    private final TextView textView;

    public LeftViewHolder(@NonNull View itemView) {
        super(itemView);
        textView = itemView.findViewById(R.id.tv_name);
        textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                onClickListener.onCLick(v,getAdapterPosition());
            }
        });
    }
}
public interface OnClickListener{
    void onCLick(View view,int position);
}
OnClickListener onClickListener;

public void setOnClickListener(OnClickListener onClickListener) {
    this.onClickListener = onClickListener;
}

}

6.Frag02
public class Frag02 extends Fragment implements LeftView,RightView {
private RightPresenter rightPresenter;
private LeftPresenter leftPresenter;
private View view;
private RecyclerView left;
private RecyclerView right;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    view = inflater.inflate(R.layout.fragment_frag02, container, false);
    initView();
    return view;
}

private void initView() {
    leftPresenter = new LeftPresenter(this);
    leftPresenter.showLeft();
    left = view.findViewById(R.id.left_recy);
    right = view.findViewById(R.id.right_recy);
    rightPresenter = new RightPresenter(this);
}

@Override
public void onSuccess(final List<LeftBean.DataBean> list) {
    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity(),LinearLayoutManager.VERTICAL,false);
    left.setLayoutManager(linearLayoutManager);
    LeftAdapter leftAdapter = new LeftAdapter(getActivity(),list);
    left.setAdapter(leftAdapter);
    leftAdapter.setOnClickListener(new LeftAdapter.OnClickListener() {
        @Override
        public void onCLick(View view, int position) {
            int cid = list.get(position).getCid();
            rightPresenter.showright("http://www.zhaoapi.cn/product/getProductCatagory?cid="+cid);
        }
    });
}

@Override
public void onFailer(String error) {

}

@Override
public void onSuccess2(List<RightBean.DataBean> list) {
    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity(),LinearLayoutManager.VERTICAL,false);
    right.setLayoutManager(linearLayoutManager);
    RightAdapter rightAdapter = new RightAdapter(getActivity(),list);
    right.setAdapter(rightAdapter);
}

@Override
public void onFailer2(String error) {

}

}
7.rightItem.xml

<?xml version="1.0" encoding="utf-8"?>



<android.support.v7.widget.RecyclerView
android:layout_width=“match_parent”
android:layout_height=“match_parent”
android:id="@+id/right_recy"
android:layout_below="@+id/name"
/>

8.child.xml

<?xml version="1.0" encoding="utf-8"?>

<ImageView
    android:layout_width="90dp"
    android:layout_height="90dp"
    android:id="@+id/image2"
    />
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/title"
    />

9.RightView
public interface RightView {
void onSuccess2(List<RightBean.DataBean> list);
void onFailer2(String error);
}

10.RightModle
public class RightModel {
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
}
};
public void showright(String cid2,final CallBackRight callBackRight){
OkHttp.createget(cid2, new Callback() {
@Override
public void onFailure(Call call, IOException e) {

        }

        @Override
        public void onResponse(Call call, Response response) throws IOException {
            final String string = response.body().string();
            handler.post(new Runnable() {
                @Override
                public void run() {
                    Gson gson = new Gson();
                    RightBean rightBean = gson.fromJson(string, RightBean.class);
                    List<RightBean.DataBean> data = rightBean.getData();
                    if (data!=null){
                        callBackRight.onSuccess2(data);
                    }else {
                        callBackRight.onFailer2("失敗");
                    }
                }
            });
        }
    });
}

}

11.RightPresenter

public class RightPresenter {
private RightModel rightModel;
private RightView rightView;

public RightPresenter(RightView rightView) {
    this.rightView = rightView;
    rightModel = new RightModel();
}
public void showright(String id){
    rightModel.showright(id, new CallBackRight() {



        @Override
        public void onSuccess2(List<RightBean.DataBean> list) {
            rightView.onSuccess2(list);
        }

        @Override
        public void onFailer2(String error) {
            rightView.onFailer2(error);
        }
    });
}

}

12.RightAdapter
public class RightAdapter extends RecyclerView.Adapter {
private Context context;
private List<RightBean.DataBean> list;

public RightAdapter(Context context, List<RightBean.DataBean> list) {
    this.context = context;
    this.list = list;
}

@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    View view = null;
    RecyclerView.ViewHolder viewHolder = null;
    view=View.inflate(context,R.layout.rightitem,null);
    viewHolder = new MyHolder1(view);
    return viewHolder;
}

@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
    ((MyHolder1)viewHolder).textView.setText(list.get(i).getName());
    List<RightBean.DataBean.ListBean> list = this.list.get(i).getList();
    GridLayoutManager gridLayoutManager = new GridLayoutManager(context,3);
    ((MyHolder1)viewHolder).recyclerView.setLayoutManager(gridLayoutManager);
    ChildAdapter childAdapter = new ChildAdapter(context,list);
    ((MyHolder1)viewHolder).recyclerView.setAdapter(childAdapter);

}

@Override
public int getItemCount() {
    return list.size();
}
private class MyHolder1 extends RecyclerView.ViewHolder {

    private final TextView textView;
    private final RecyclerView recyclerView;

    public MyHolder1(@NonNull View itemView) {
        super(itemView);
        textView = itemView.findViewById(R.id.name);
        recyclerView = itemView.findViewById(R.id.right_recy);
    }
}

}

13.ChildAdapter
public class ChildAdapter extends RecyclerView.Adapter {
private Context context;
private List<RightBean.DataBean.ListBean> list;

public ChildAdapter(Context context, List<RightBean.DataBean.ListBean> list) {
    this.context = context;
    this.list = list;
}

@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    View view = null;
    RecyclerView.ViewHolder viewHolder=null;
    view=View.inflate(context,R.layout.child,null);
    viewHolder= new MyHolder2(view);
    return viewHolder;
}

@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
    ((MyHolder2)viewHolder).textView.setText(list.get(i).getName());
    Glide.with(context).load(list.get(i).getIcon()).into(((MyHolder2)viewHolder).imageView);
}

@Override
public int getItemCount() {
    return list.size();
}
private class MyHolder2 extends RecyclerView.ViewHolder {

    private final ImageView imageView;
    private final TextView textView;

    public MyHolder2(@NonNull View itemView) {
        super(itemView);
        imageView = itemView.findViewById(R.id.image2);
        textView = itemView.findViewById(R.id.title);
    }
}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章