recycle网格展示数据

MyApp

public class MApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        Fresco.initialize(this);
    }
}

util-Constant

public class Constant {
    public static final String BASE_URL = "https://app.tuozhe8.com/";
}

util-MyRetrofit

public interface MyRetrofit {
    @GET("api.php/api/Lists/content_lists&version=1.7&token=&type=1&cat=&catid2=&page=1")
    Observable<House> getHouse();
}

util-Retrofitutil

public class RetrofitUtil {

    private final Retrofit retrofit;
    private HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY);
    private static final RetrofitUtil retrofitUtil = new RetrofitUtil();

    private RetrofitUtil() {
        retrofit = new Retrofit.Builder()
                .baseUrl(Constant.BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .client(getOkClient())
                .build();
    }

    private OkHttpClient getOkClient() {
        return new OkHttpClient.Builder()
                .addInterceptor(httpLoggingInterceptor)
                .build();
    }

    public static RetrofitUtil getRetrofitUtil() {
        return retrofitUtil;
    }

    public <T> T create(Class<T> clazz) {
        return retrofit.create(clazz);
    }
}

mvp-model-HouseModel

public class HouseModel {
    public Observable<House> getHouse() {
        return RetrofitUtil.getRetrofitUtil().create(MyRetrofit.class).getHouse();
    }
}

mvp-presenter-Hosepresenter

public class HousePresenter {
    public HouseView view;
    private final HouseModel model;
    private CompositeDisposable compositeDisposable = new CompositeDisposable();

    public HousePresenter(HouseView view) {
        this.view = view;
        model = new HouseModel();
    }

    public void getHouse() {
        model.getHouse()
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<House>() {
                    @Override
                    public void onSubscribe(Disposable d) {
                        compositeDisposable.add(d);
                    }

                    @Override
                    public void onNext(House house) {
                        view.onGetHouseSuccess(house);
                    }

                    @Override
                    public void onError(Throwable e) {

                    }

                    @Override
                    public void onComplete() {

                    }
                });
    }

    //内存优化
    public void onDestroy() {
        view = null;
        compositeDisposable.clear();
    }
}

mvp-view-HouseView

public interface HouseView {
    void onGetHouseSuccess(House house);
}

mvp-view-Fragment

public class OneFragment extends Fragment implements HouseView {
    @BindView(R.id.one_rv)
    RecyclerView oneRv;
    Unbinder unbinder;
    private HousePresenter presenter;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.one_fg, container, false);
        unbinder = ButterKnife.bind(this, view);
        return view;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        //请求网络
        presenter = new HousePresenter(this);
        initRv();
    }

    private void initRv() {
        oneRv.setLayoutManager(new GridLayoutManager(getActivity(), 2));
        presenter.getHouse();
    }

    //内存优化
    @Override
    public void onDestroyView() {
        super.onDestroyView();
        unbinder.unbind();
        presenter.onDestroy();
        presenter = null;
    }

    @Override
    public void onGetHouseSuccess(House house) {
        List<House.DataBean> data = house.getData();
        RvAdapter adapter = new RvAdapter(data);
        oneRv.setAdapter(adapter);
    }
}

Adapter

public class RvAdapter extends RecyclerView.Adapter {
    private List<House.DataBean> list;
    private Context context;

    public RvAdapter(List<House.DataBean> list) {
        this.list = list;
    }

    @NonNull
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        context = parent.getContext();
        View view = LayoutInflater.from(context).inflate(R.layout.item, parent, false);
        ViewHolder viewHolder = new ViewHolder(view);
        return viewHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
        House.DataBean bean = list.get(position);
        ViewHolder viewHolder = (ViewHolder) holder;
        viewHolder.itemImg.setImageURI(Uri.parse(bean.getLogo()));
        viewHolder.itemTitle.setText(bean.getTitle());
    }

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

    static class ViewHolder extends RecyclerView.ViewHolder {
        @BindView(R.id.item_img)
        SimpleDraweeView itemImg;
        @BindView(R.id.item_title)
        TextView itemTitle;

        ViewHolder(View view) {
            super(view);
            ButterKnife.bind(this, view);
        }
    }
}

bean

public class House {
    /**
     * code : 1
     * data : [{"id":"1371","catid":"1","catid2":"21","title":"奥斯陆  -  呈现别致的美感","type":"1","video_type":"","uid":"100295","lecturer":"无","sign_number":"0","purchase_number":"0","is_charge":"0","is_vip":"0","price":"0","label":"","logo":"https://app.tuozhe8.com/tuozheapp/thumb-artimages/20180811/54dcd8fb365b3fb1d9ff8cae23eff58d.jpeg","like_number":"0","like_count":"1","comment_count":"0","view_count":"119","hot":"2","creatime":"1533983759","hot_time":"","is_del":"0","source":"1","nick_name":"","status":"1","drafts":"0","share_links":"https://app.tuozhe8.com/api.php/api8/share/details/id/1371.html","share_links_new":"https://app.tuozhe8.com/api.php/api8/share/details_new/id/1371.html","check":"1"},{"id":"1370","catid":"2","catid2":"21","title":"库玛室内装饰设计  -  佛山阳光城绿岛湖壹号样板房","type":"1","video_type":"","uid":"100295","lecturer":"无","sign_number":"0","purchase_number":"0","is_charge":"0","is_vip":"0","price":"0","label":"","logo":"https://app.tuozhe8.com/tuozheapp/thumb-artimages/20180811/358e1f2d40193f54348ec70e1ba869f3.jpeg","like_number":"0","like_count":"7","comment_count":"0","view_count":"227","hot":"1","creatime":"1533982339","hot_time":"1534035728","is_del":"0","source":"1","nick_name":"","status":"1","drafts":"0","share_links":"https://app.tuozhe8.com/api.php/api8/share/details/id/1370.html","share_links_new":"https://app.tuozhe8.com/api.php/api8/share/details_new/id/1370.html","check":"1"},{"id":"1369","catid":"1","catid2":"24","title":"尚舍生活设计  -  90后的小窝","type":"1","video_type":"","uid":"100295","lecturer":"无","sign_number":"0","purchase_number":"0","is_charge":"0","is_vip":"0","price":"0","label":"","logo":"https://app.tuozhe8.com/tuozheapp/thumb-artimages/20180811/fd474f8250865eeb3ed01e5ce13ed7de.jpeg","like_number":"0","like_count":"2","comment_count":"0","view_count":"170","hot":"1","creatime":"1533981764","hot_time":"1534035731","is_del":"0","source":"1","nick_name":"","status":"1","drafts":"0","share_links":"https://app.tuozhe8.com/api.php/api8/share/details/id/1369.html","share_links_new":"https://app.tuozhe8.com/api.php/api8/share/details_new/id/1369.html","check":"1"},{"id":"1368","catid":"1","catid2":"21","title":"A5住宅  -  以色列","type":"1","video_type":"","uid":"100295","lecturer":"无","sign_number":"0","purchase_number":"0","is_charge":"0","is_vip":"0","price":"0","label":"","logo":"https://app.tuozhe8.com/tuozheapp/thumb-artimages/20180811/7b63d8283db55c054b56d85ddfcee36d.jpeg","like_number":"0","like_count":"1","comment_count":"0","view_count":"72","hot":"2","creatime":"1533981305","hot_time":"","is_del":"0","source":"1","nick_name":"","status":"1","drafts":"0","share_links":"https://app.tuozhe8.com/api.php/api8/share/details/id/1368.html","share_links_new":"https://app.tuozhe8.com/api.php/api8/share/details_new/id/1368.html","check":"1"},{"id":"1367","catid":"1","catid2":"21","title":"色彩,让设计更精彩!","type":"1","video_type":"","uid":"100295","lecturer":"无","sign_number":"0","purchase_number":"0","is_charge":"0","is_vip":"0","price":"0","label":"","logo":"https://app.tuozhe8.com/tuozheapp/thumb-artimages/20180811/f0b628a1ecbef12205ea7ec1242fd41f.jpeg","like_number":"0","like_count":"1","comment_count":"0","view_count":"91","hot":"2","creatime":"1533980711","hot_time":"","is_del":"0","source":"1","nick_name":"","status":"1","drafts":"0","share_links":"https://app.tuozhe8.com/api.php/api8/share/details/id/1367.html","share_links_new":"https://app.tuozhe8.com/api.php/api8/share/details_new/id/1367.html","check":"1"},{"id":"1366","catid":"1","catid2":"21","title":"充满理性和生活化的住宅,永不落幕的经典","type":"1","video_type":"","uid":"100295","lecturer":"无","sign_number":"0","purchase_number":"0","is_charge":"0","is_vip":"0","price":"0","label":"","logo":"https://app.tuozhe8.com/tuozheapp/thumb-artimages/20180811/96e6e0fea5d77aa8bf5a1db025170bed.jpeg","like_number":"0","like_count":"0","comment_count":"0","view_count":"82","hot":"2","creatime":"1533979404","hot_time":"","is_del":"0","source":"1","nick_name":"","status":"1","drafts":"0","share_links":"https://app.tuozhe8.com/api.php/api8/share/details/id/1366.html","share_links_new":"https://app.tuozhe8.com/api.php/api8/share/details_new/id/1366.html","check":"1"},{"id":"1365","catid":"4","catid2":"21","title":"毕路德  -  三亚凯悦嘉轩酒店","type":"1","video_type":"","uid":"100295","lecturer":"无","sign_number":"0","purchase_number":"0","is_charge":"0","is_vip":"0","price":"0","label":"","logo":"https://app.tuozhe8.com/tuozheapp/thumb-artimages/20180811/971d20963df860c91e751a492835e924.jpeg","like_number":"0","like_count":"1","comment_count":"0","view_count":"27","hot":"2","creatime":"1533978971","hot_time":"","is_del":"0","source":"1","nick_name":"","status":"1","drafts":"0","share_links":"https://app.tuozhe8.com/api.php/api8/share/details/id/1365.html","share_links_new":"https://app.tuozhe8.com/api.php/api8/share/details_new/id/1365.html","check":"1"},{"id":"1364","catid":"1","catid2":"29","title":"会呼吸的红砖墙!南美158㎡民族风透天宅","type":"1","video_type":"","uid":"100295","lecturer":"无","sign_number":"0","purchase_number":"0","is_charge":"0","is_vip":"0","price":"0","label":"","logo":"https://app.tuozhe8.com/tuozheapp/thumb-artimages/20180811/363bdb5b8b76aa968527c4cf8e071ba1.jpeg","like_number":"0","like_count":"0","comment_count":"0","view_count":"47","hot":"2","creatime":"1533977606","hot_time":"","is_del":"0","source":"1","nick_name":"","status":"1","drafts":"0","share_links":"https://app.tuozhe8.com/api.php/api8/share/details/id/1364.html","share_links_new":"https://app.tuozhe8.com/api.php/api8/share/details_new/id/1364.html","check":"1"},{"id":"1363","catid":"1","catid2":"21","title":"波兰现代公寓  -  Raca Architekci","type":"1","video_type":"","uid":"100295","lecturer":"无","sign_number":"0","purchase_number":"0","is_charge":"0","is_vip":"0","price":"0","label":"","logo":"https://app.tuozhe8.com/tuozheapp/thumb-artimages/20180811/ad264b9824f345712e246313be3e8307.jpeg","like_number":"0","like_count":"3","comment_count":"0","view_count":"70","hot":"2","creatime":"1533977393","hot_time":"","is_del":"0","source":"1","nick_name":"","status":"1","drafts":"0","share_links":"https://app.tuozhe8.com/api.php/api8/share/details/id/1363.html","share_links_new":"https://app.tuozhe8.com/api.php/api8/share/details_new/id/1363.html","check":"1"},{"id":"1362","catid":"2","catid2":"21","title":"广州首开龙湖·天奕样板房  -  YANG地产新作","type":"1","video_type":"","uid":"100295","lecturer":"无","sign_number":"0","purchase_number":"0","is_charge":"0","is_vip":"0","price":"0","label":"","logo":"https://app.tuozhe8.com/tuozheapp/thumb-artimages/20180811/1341403cf8c1c2970ab64ea8d5495561.jpeg","like_number":"0","like_count":"1","comment_count":"0","view_count":"76","hot":"2","creatime":"1533977212","hot_time":"","is_del":"0","source":"1","nick_name":"","status":"1","drafts":"0","share_links":"https://app.tuozhe8.com/api.php/api8/share/details/id/1362.html","share_links_new":"https://app.tuozhe8.com/api.php/api8/share/details_new/id/1362.html","check":"1"}]
     * message : success
     */

    private String code;
    private String message;
    private List<DataBean> data;

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public List<DataBean> getData() {
        return data;
    }

    public void setData(List<DataBean> data) {
        this.data = data;
    }

    public static class DataBean {
        /**
         * id : 1371
         * catid : 1
         * catid2 : 21
         * title : 奥斯陆  -  呈现别致的美感
         * type : 1
         * video_type :
         * uid : 100295
         * lecturer : 无
         * sign_number : 0
         * purchase_number : 0
         * is_charge : 0
         * is_vip : 0
         * price : 0
         * label :
         * logo : https://app.tuozhe8.com/tuozheapp/thumb-artimages/20180811/54dcd8fb365b3fb1d9ff8cae23eff58d.jpeg
         * like_number : 0
         * like_count : 1
         * comment_count : 0
         * view_count : 119
         * hot : 2
         * creatime : 1533983759
         * hot_time :
         * is_del : 0
         * source : 1
         * nick_name :
         * status : 1
         * drafts : 0
         * share_links : https://app.tuozhe8.com/api.php/api8/share/details/id/1371.html
         * share_links_new : https://app.tuozhe8.com/api.php/api8/share/details_new/id/1371.html
         * check : 1
         */

        private String id;
        private String catid;
        private String catid2;
        private String title;
        private String type;
        private String video_type;
        private String uid;
        private String lecturer;
        private String sign_number;
        private String purchase_number;
        private String is_charge;
        private String is_vip;
        private String price;
        private String label;
        private String logo;
        private String like_number;
        private String like_count;
        private String comment_count;
        private String view_count;
        private String hot;
        private String creatime;
        private String hot_time;
        private String is_del;
        private String source;
        private String nick_name;
        private String status;
        private String drafts;
        private String share_links;
        private String share_links_new;
        private String check;

        public String getId() {
            return id;
        }

        public void setId(String id) {
            this.id = id;
        }

        public String getCatid() {
            return catid;
        }

        public void setCatid(String catid) {
            this.catid = catid;
        }

        public String getCatid2() {
            return catid2;
        }

        public void setCatid2(String catid2) {
            this.catid2 = catid2;
        }

        public String getTitle() {
            return title;
        }

        public void setTitle(String title) {
            this.title = title;
        }

        public String getType() {
            return type;
        }

        public void setType(String type) {
            this.type = type;
        }

        public String getVideo_type() {
            return video_type;
        }

        public void setVideo_type(String video_type) {
            this.video_type = video_type;
        }

        public String getUid() {
            return uid;
        }

        public void setUid(String uid) {
            this.uid = uid;
        }

        public String getLecturer() {
            return lecturer;
        }

        public void setLecturer(String lecturer) {
            this.lecturer = lecturer;
        }

        public String getSign_number() {
            return sign_number;
        }

        public void setSign_number(String sign_number) {
            this.sign_number = sign_number;
        }

        public String getPurchase_number() {
            return purchase_number;
        }

        public void setPurchase_number(String purchase_number) {
            this.purchase_number = purchase_number;
        }

        public String getIs_charge() {
            return is_charge;
        }

        public void setIs_charge(String is_charge) {
            this.is_charge = is_charge;
        }

        public String getIs_vip() {
            return is_vip;
        }

        public void setIs_vip(String is_vip) {
            this.is_vip = is_vip;
        }

        public String getPrice() {
            return price;
        }

        public void setPrice(String price) {
            this.price = price;
        }

        public String getLabel() {
            return label;
        }

        public void setLabel(String label) {
            this.label = label;
        }

        public String getLogo() {
            return logo;
        }

        public void setLogo(String logo) {
            this.logo = logo;
        }

        public String getLike_number() {
            return like_number;
        }

        public void setLike_number(String like_number) {
            this.like_number = like_number;
        }

        public String getLike_count() {
            return like_count;
        }

        public void setLike_count(String like_count) {
            this.like_count = like_count;
        }

        public String getComment_count() {
            return comment_count;
        }

        public void setComment_count(String comment_count) {
            this.comment_count = comment_count;
        }

        public String getView_count() {
            return view_count;
        }

        public void setView_count(String view_count) {
            this.view_count = view_count;
        }

        public String getHot() {
            return hot;
        }

        public void setHot(String hot) {
            this.hot = hot;
        }

        public String getCreatime() {
            return creatime;
        }

        public void setCreatime(String creatime) {
            this.creatime = creatime;
        }

        public String getHot_time() {
            return hot_time;
        }

        public void setHot_time(String hot_time) {
            this.hot_time = hot_time;
        }

        public String getIs_del() {
            return is_del;
        }

        public void setIs_del(String is_del) {
            this.is_del = is_del;
        }

        public String getSource() {
            return source;
        }

        public void setSource(String source) {
            this.source = source;
        }

        public String getNick_name() {
            return nick_name;
        }

        public void setNick_name(String nick_name) {
            this.nick_name = nick_name;
        }

        public String getStatus() {
            return status;
        }

        public void setStatus(String status) {
            this.status = status;
        }

        public String getDrafts() {
            return drafts;
        }

        public void setDrafts(String drafts) {
            this.drafts = drafts;
        }

        public String getShare_links() {
            return share_links;
        }

        public void setShare_links(String share_links) {
            this.share_links = share_links;
        }

        public String getShare_links_new() {
            return share_links_new;
        }

        public void setShare_links_new(String share_links_new) {
            this.share_links_new = share_links_new;
        }

        public String getCheck() {
            return check;
        }

        public void setCheck(String check) {
            this.check = check;
        }
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值