public class ClsFragment extends Fragment implements ClsContract.IclsView,LeftAdapter.ItemClickListener{    private RecyclerView rv_left;    private RecyclerView rv_right;    private ClsPresenter clsPresenter;    private LeftAdapter leftAdapter;    private RightAdapter rightAdapter;    private String cid = "1";    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {        return inflater.inflate(R.layout.fragment_cls, container, false);    }    @Override    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {        rv_left = view.findViewById(R.id.rv_left);        rv_right = view.findViewById(R.id.rv_right);        initData();    }    private void initData() {        rv_left.setLayoutManager(new LinearLayoutManager(getActivity()));        rv_right.setLayoutManager(new LinearLayoutManager(getActivity()));        clsPresenter = new ClsPresenter(this);        getleft(cid);        clsPresenter.getLeftList(new HashMap());    }    private void getleft(String cid) {        HashMap parmas = new HashMap<>();        parmas.put("cid",cid);        clsPresenter.getRightList(parmas);    }    @Override    public void leftSuccess(List leftClsBeanList) {        if (leftAdapter==null){            leftAdapter = new LeftAdapter(leftClsBeanList,getActivity());            rv_left.setAdapter(leftAdapter);            leftAdapter.setItemClickListener(this);        }else {            leftAdapter.notifyDataSetChanged();        }    }    @Override    public void rightSuccess(List rightClsBeanList) {        rightAdapter = new RightAdapter(rightClsBeanList,getActivity());        rv_right.setAdapter(rightAdapter);    }    @Override    public void leftfailure(String error)     }    @Override    public void rightfailure(String error) {    }    @Override    public void click(String cid) {        getleft(cid);    }}
public interface ClsContract {    public abstract class ClsPresenters{        public abstract void getLeftList(HashMap params);        public abstract void getRightList(HashMap params);    }    public interface IClsModel{        void getLeftList(HashMap params, ClsModel.ClsModelCallback clsModelCallback);        void getRightList(HashMap params, ClsModel.ClsModelCallback clsModelCallback);    }    public interface IclsView{        void leftSuccess(List leftClsBeanList);        void rightSuccess(List rightClsBeanList);        void leftfailure(String error);        void rightfailure(String error);    }}public class ClsPresenter extends ClsContract.ClsPresenters {    private ClsModel clsModel;    private ClsContract.IclsView iclsView;    public ClsPresenter(ClsContract.IclsView iclsView) {        this.iclsView = iclsView;        this.clsModel = new ClsModel();    }    @Override    public void getLeftList(HashMap params) {        clsModel.getLeftList(params, new ClsModel.ClsModelCallback() {            @Override            public void leftsuccess(String result) {                LeftClsBean leftClsBean = new Gson().fromJson(result,LeftClsBean.class);                List data = leftClsBean.data;                iclsView.leftSuccess(data);            }        });    }    @Override    public void getRightList(HashMap params) {        clsModel.getRightList(params, new ClsModel.ClsModelCallback() {            @Override            public void leftsuccess(String result) {            }            @Override            public void rightsuccess(String result) {                RightClsBean rightClsBean = new Gson().fromJson(result,RightClsBean.class);                List data = rightClsBean.data;                iclsView.rightSuccess(data);            }        });    }}public class ClsModel implements ClsContract.IClsModel {    @Override    public void getLeftList(HashMap params, final ClsModelCallback clsModelCallback) {        OkhttpUtils.getInstance().doPost(ClsApi.LEFT_API, params, new OkHttpCallback() {            @Override            public void Success(String result) {                if (clsModelCallback!=null){                    clsModelCallback.leftsuccess(result);                }            }            @Override            public void Failure(String msg) {                if (clsModelCallback!=null){                    clsModelCallback.leftfailure(msg);                }            }        });    }    @Override    public void getRightList(HashMap params, final ClsModelCallback clsModelCallback) {        OkhttpUtils.getInstance().doPost(ClsApi.RIGHT_API, params, new OkHttpCallback() {            @Override            public void Success(String result) {                if (clsModelCallback!=null){                    clsModelCallback.rightsuccess(result);                }            }            @Override            public void Failure(String msg) {                if (clsModelCallback!=null){                    clsModelCallback.rightfailure(msg);                }            }        });    }    public interface ClsModelCallback{        void leftsuccess(String result);        void rightsuccess(String result);        void leftfailure(String error);        void rightfailure(String error);    }}
public class LeftAdapter extends RecyclerView.Adapter{    private List list;    private Context context;    public LeftAdapter(List list, Context context) {        this.list = list;        this.context = context;    }    @NonNull    @Override    public leftViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {        View view = LayoutInflater.from(context).inflate(R.layout.left_layout_item,viewGroup,false);        leftViewHolder leftViewHolder = new leftViewHolder(view);        return leftViewHolder;    }    @Override    public void onBindViewHolder(@NonNull leftViewHolder leftViewHolder, int i) {        final LeftClsBean.Cls cls = list.get(i);        leftViewHolder.tv_name.setText(cls.name);        leftViewHolder.itemView.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                if (itemClickListener!=null){                    itemClickListener.click(cls.cid);                }            }        });    }    @Override    public int getItemCount() {        return list==null?0:list.size();    }    class leftViewHolder extends RecyclerView.ViewHolder {        private final TextView tv_name;        public leftViewHolder(@NonNull View itemView) {            super(itemView);            tv_name = itemView.findViewById(R.id.tv_name);        }    }    private ItemClickListener itemClickListener;    public void setItemClickListener(ItemClickListener itemClickListener){        this.itemClickListener = itemClickListener;    }    public interface ItemClickListener{        void click(String cid);    }}
public class RightAdapter extends RecyclerView.Adapter{    private List list;    private Context context;    public RightAdapter(List list, Context context) {        this.list = list;        this.context = context;    }    @NonNull    @Override    public rightViewHodler onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {        View view = LayoutInflater.from(context).inflate(R.layout.right_layout_item,viewGroup,false);        rightViewHodler rightViewHodler = new rightViewHodler(view);        return rightViewHodler;    }    @Override    public void onBindViewHolder(@NonNull rightViewHodler rightViewHodler, int i) {        RightClsBean.DataBean dataBean = list.get(i);        List list = dataBean.list;        rightViewHodler.tv_name.setText(dataBean.name);        rightViewHodler.recyclerView.setLayoutManager(new GridLayoutManager(context,3));        rightViewHodler.recyclerView.setAdapter(new RightItemAdapter(context,list));    }    @Override    public int getItemCount() {        return list==null?0:list.size();    }    class rightViewHodler extends RecyclerView.ViewHolder{        private final TextView tv_name;        private final RecyclerView recyclerView;        public rightViewHodler(@NonNull View itemView) {            super(itemView);            tv_name = itemView.findViewById(R.id.tv_name);            recyclerView = itemView.findViewById(R.id.rv);        }    }}
public class RightItemAdapter extends RecyclerView.Adapter{    private Context context;    private List listBeans;    public RightItemAdapter(Context context, List listBeans) {        this.context = context;        this.listBeans = listBeans;    }    @NonNull    @Override    public rightitemViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {        View view = LayoutInflater.from(context).inflate(R.layout.rightitem_layout_item,viewGroup,false);        rightitemViewHolder rightitemViewHolder = new rightitemViewHolder(view);        return rightitemViewHolder;    }    @Override    public void onBindViewHolder(@NonNull rightitemViewHolder rightitemViewHolder, int i) {        RightClsBean.DataBean.ListBean listBean = listBeans.get(i);        rightitemViewHolder.tv_name.setText(listBean.name);        Glide.with(context).load(listBean.icon).into(rightitemViewHolder.imageView);    }    @Override    public int getItemCount() {        return listBeans==null?0:listBeans.size();    }    class rightitemViewHolder extends RecyclerView.ViewHolder {        private final TextView tv_name;        private final ImageView imageView;        public rightitemViewHolder(@NonNull View itemView) {            super(itemView);            tv_name = itemView.findViewById(R.id.tv_name);            imageView = itemView.findViewById(R.id.iv);        }    }}

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. Android线程与并行,AsyncTask(AsyncTask回
  2. 关于监听Android的静音键以及音量按键
  3. cocos2d-x在android下添加插屏广告
  4. 还在用Android(安卓)Studio看接口日志?一
  5. android拍照上传到服务器端
  6. 在Android中自定义捕获Application全局异
  7. Android(安卓)值得深入思考的几个面试问
  8. 浅浅的介绍一下android里面Handler、Loop
  9. Android(安卓)MVP+RXJava+Retrofit框架的
  10. Android(安卓)dip(dp) 与 sp的自适应问题