RecyclView

callBack

public interface ICallBack {

    void success(Object obj);

    void failed(Exception e);
}

view

public interface IView {

    void failed(Exception e);

    void getZuo(List<ZuoBean.DataBean> list);

    void getYou(List<YouBean.DataBean> list);
}

model

public class FenLeiModel {

    public void getFenLei(String url, ICallBack callBack , Type type){
        HttpUtils.getInstance().get(url,callBack,type);
    }

}

presenter

public class FenLeiPresenter {

    private IView iv;
    private FenLeiModel model;

    public void attach(IView iv){
        this.iv = iv;
        model = new FenLeiModel();
    }
    public void detach(){
        if (iv != null){
            iv = null;
        }
    }

    public void getZuo(){
        Type type = new TypeToken<ZuoBean>(){}.getType();
        model.getFenLei("https://www.zhaoapi.cn/product/getCatagory", new ICallBack() {
            @Override
            public void success(Object obj) {
                ZuoBean zuoBean = (ZuoBean) obj;
                if (zuoBean != null){
                    iv.getZuo(zuoBean.getData());
                }
            }

            @Override
            public void failed(Exception e) {
                iv.failed(e);
            }
        },type);
    }
    public  void getYou(String url){
        Type type = new TypeToken<YouBean>(){}.getType();
        model.getFenLei(url, new ICallBack() {
            @Override
            public void success(Object obj) {
                YouBean youBean = (YouBean) obj;
                if (youBean != null){
                    Log.i("1234556", "success: "+youBean.getCode());
                    iv.getYou(youBean.getData());
                }
            }

            @Override
            public void failed(Exception e) {
                iv.failed(e);
            }
        },type);
    }
}

adapter

public class ZuoAdapter extends RecyclerView.Adapter<ZuoAdapter.ViewHolder> {

    private Context context;
    private List<ZuoBean.DataBean> zuoList;

    public ZuoAdapter(Context context, List<ZuoBean.DataBean> zuoList) {
        this.context = context;
        this.zuoList = zuoList;
    }

    public interface OnItemClickListener{
        void onItemClick(View itemView , int position);
    }
    private OnItemClickListener clickListener;
    public void setOnItemClickListener(OnItemClickListener clickListener){
        this.clickListener = clickListener;
    }
    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = View.inflate(context,R.layout.list_item1,null);
        ViewHolder holder = new ViewHolder(view);
        return holder;
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, final int position) {
        holder.txtTitle.setText(zuoList.get(position).getName());
        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (clickListener != null){
                    Log.i("2e3r4t5y6u78", "onItemClick: 23r45678980");
                    clickListener.onItemClick(v,position);
                }
            }
        });
    }

    @Override
    public int getItemCount() {
        return zuoList.size();
    }

    class ViewHolder extends RecyclerView.ViewHolder{
        private TextView txtTitle;
        public ViewHolder(View itemView) {
            super(itemView);
            txtTitle = itemView.findViewById(R.id.txt_title);
        }
    }
}

 

rightAdapter

public class RightAdapter extends RecyclerView.Adapter<RightAdapter.ViewHolder>{
    private Context context;
    private List<YouBean.DataBean.ListBean> youList;

    public RightAdapter(Context context, List<YouBean.DataBean.ListBean> youList) {
        this.context = context;
        this.youList = youList;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = View.inflate(context, R.layout.item_list2,null);
        ViewHolder holder = new ViewHolder(view);
        return holder;
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
        Glide.with(context).load(youList.get(position).getIcon()).into(holder.imageLogo);
        holder.txtTitle.setText(youList.get(position).getName());
    }

    @Override
    public int getItemCount() {
        return youList.size();
    }

    public class ViewHolder extends RecyclerView.ViewHolder{
        private ImageView imageLogo;
        private TextView txtTitle;
        public ViewHolder(View itemView) {
            super(itemView);
            imageLogo = itemView.findViewById(R.id.image_logo);
            txtTitle = itemView.findViewById(R.id.txt_title);
        }
    }
}

activity

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        rcZuo = findViewById(R.id.rc_zuo);
        llRight = findViewById(R.id.ll_right);
        zuoList = new ArrayList<>();
        youList = new ArrayList<>();
        zuoAdapter = new ZuoAdapter(this,zuoList);
        RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false);
        rcZuo.setLayoutManager(layoutManager);
        presenter = new FenLeiPresenter();
        rcZuo.setAdapter(zuoAdapter);
        presenter.attach(this);
        presenter.getZuo();
        zuoAdapter.setOnItemClickListener(new ZuoAdapter.OnItemClickListener() {
            @Override
            public void onItemClick(View itemView, int position) {
                ZuoBean.DataBean bean = zuoList.get(position);
                presenter.getYou("https://www.zhaoapi.cn/product/getProductCatagory?cid="+bean.getCid());
            }
        });

    }

    //失败原因
    @Override
    public void failed(Exception e) {

    }

    @Override
    public void getZuo(List<ZuoBean.DataBean> list) {
        if (list != null){
            zuoList.clear();
            zuoList.addAll(list);
            zuoAdapter.notifyDataSetChanged();
        }
    }

    @Override
    public void getYou(List<YouBean.DataBean> list) {
        if (list != null){
            llRight.removeAllViews();
            for (int i = 0; i <list.size(); i++) {
                TextView  textView = new TextView(this);
                textView.setText(list.get(i).getName());
                RecyclerView recyclerView = new RecyclerView(this);
                RecyclerView.LayoutManager layoutManager1 = new GridLayoutManager(this,3);
                recyclerView.setLayoutManager(layoutManager1);
                rightAdapter = new RightAdapter(this,list.get(i).getList());
                recyclerView.setAdapter(rightAdapter);
                youList.clear();
                youList.addAll(list);
                rightAdapter.notifyDataSetChanged();
                llRight.addView(textView);
                llRight.addView(recyclerView);
            }
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (presenter != null){
            presenter.detach();
        }
    }

    @Override
    protected void onResume() {
        super.onResume();
        presenter.getYou("https://www.zhaoapi.cn/product/getProductCatagory?cid=1");
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值