MVP+Retrofit+RecyclerView实现加载网络数据
来源:互联网 发布:java汽车租赁系统代码 编辑:程序博客网 时间:2024/06/04 18:11
依赖
compile 'com.android.support:design:26.1.0' compile 'com.android.support:recyclerview-v7:26.1.0' compile 'com.facebook.fresco:fresco:0.11.0' compile 'com.squareup.retrofit2:retrofit:2.0.2' compile 'com.squareup.okhttp3:okhttp:3.1.2' compile 'com.squareup.retrofit2:converter-gson:2.0.2' //若和观察者结合的话,需加上如下依赖: compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0' compile 'io.reactivex:rxjava:1.0.14' compile 'io.reactivex:rxandroid:1.0.1'
View
public interface IShowData { public void showData(List<Bea.ResultsBean> list);}
Model
public interface IGetData { public void getData(Observer observer);}public class GetData implements IGetData{ @Override public void getData(Observer observer) { Retrofit retrofit=new Retrofit.Builder() .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .addConverterFactory(GsonConverterFactory.create()) .baseUrl("http://gank.io/") .build(); UserUrl userUrl=retrofit.create(UserUrl.class); userUrl.getCall(10,1).observeOn(AndroidSchedulers.mainThread()).subscribeOn(Schedulers.io()).subscribe(observer); }}
工具类
public interface UserUrl {//参数是可以变化的 @GET("api/data/Android/{size}/{page}") Observable<Bea> getCall(@Path("size") int size, @Path("page") int page);}
Presenter
public class DataPresenter { GetData model; IShowData view; List<Bea.ResultsBean> list=new ArrayList<>(); public DataPresenter(IShowData view) { this.view=view; this.model=new GetData(); } public void getDPData() { model.getData(new Observer<Bea>(){ @Override public void onCompleted() { Log.i("111111P","onCompleted()"); } @Override public void onError(Throwable e) { Log.i("111111P","onError()"); } @Override public void onNext(Bea bea) { Log.i("111111P","onNext()"); list.addAll(bea.getResults()); view.showData(list); Log.i("111111P",list+""); } }); }}
Fragment
public class Fra_tb1 extends Fragment implements IShowData{ private View view; private RecyclerView mRv; List<Bea.ResultsBean> list; DataPresenter presenter; MyAdapter adapter; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = View.inflate(getContext(), R.layout.frag_tb1, null); initView(view); list=new ArrayList<>(); presenter=new DataPresenter(this); showData(list); presenter.getDPData(); return view; } private void initView(View view) { mRv = (RecyclerView) view.findViewById(R.id.rv); } @Override public void showData(List<Bea.ResultsBean> list) { LinearLayoutManager manager = new LinearLayoutManager(getContext()); mRv.setLayoutManager(manager); adapter = new MyAdapter(getContext(),list); mRv.setAdapter(adapter); }}
适配器
public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{ Context context; List<Bea.ResultsBean> list=new ArrayList<>(); public MyAdapter(Context context, List<Bea.ResultsBean> list) { this.context = context; this.list = list; } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view=View.inflate(context, R.layout.item,null); return new MyViewHolder(view); } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { Uri uri=Uri.parse("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1512194192440&di=060d73d7e3d302a94ba25fe7e108d43e&imgtype=0&src=http%3A%2F%2Fimg4.duitang.com%2Fuploads%2Fitem%2F201610%2F30%2F20161030083724_YEByt.jpeg"); ((MyViewHolder)holder).sdv.setImageURI(uri); ((MyViewHolder)holder).tv.setText(list.get(position).getDesc()); Log.i("111111",list+""); } @Override public int getItemCount() { return list!=null?list.size():0; } class MyViewHolder extends RecyclerView.ViewHolder{ SimpleDraweeView sdv; TextView tv; public MyViewHolder(View itemView) { super(itemView); sdv=itemView.findViewById(R.id.sdv); tv=itemView.findViewById(R.id.tv); } }}
阅读全文
0 0
- MVP+Retrofit+RecyclerView实现加载网络数据
- MVP实现用Retrofit请求网络数据Fresco加载图片,Recyclerview CheckBox显示并实现全选删除
- MVP+Retrofit+RxJava请求网络数据实现RecyclerView多条目展示
- 使用MVP模式+Retrofit+Fresco加载网络数据
- MVP+Retrofit+Observable+RecyclerView请求网络
- RxJava2+MVP+Retrofit框架简单实现RecyclerView
- 展示数据使用:recyclerview,retrofit,greendao,butterknife,eventbus,fresco。实现效果图列表。MVP模式。
- RecyclerView网络加载数据
- MVP+Rxjava+Retrofit+Fresco网络请求数据
- Android MVP框架+RxJava+Retrofit+cecycleView,请求网络数据并加载
- 使用MVP+Retrofit+RxJava 图片加载使用Fresco 做网络请求并展示数据
- MVP+retrofit和Rxjava请求数据+recyclerview展示
- MVP(Retrofit+RXJava)实现网络请求
- RxJava结合Retrofit使用 自定义封装类结合泛型 请求网络数据+Fresco+RecyclerView+MVP分层
- MVP+Rxjava+Fresco+Retrofit实现Recyclerview列表展示
- MVP+recyclerview网络请求列表数据
- RecyclerView条目跳转+SpringView数据刷新加载+MVP+OKhttp+拦截器+自定义view 实现请求网络数据的二级列表购物车
- MVP+Retrofit+RxJava+fresco+RecyclerView
- Web Servlet配置出错,访问不到
- [LeetCode
- [BZOJ3504][CQOI2014]危桥(网络流)
- javaWeb购物商城设计---商品详情显示
- 联网判断
- MVP+Retrofit+RecyclerView实现加载网络数据
- Java数组
- Android 开发微技巧
- [BZOJ4010][HNOI2015]菜肴制作(拓扑排序+堆)
- JAVA | 42
- OkHttp简单的请求数据
- jQuery第二章选择器
- 计算机视觉class5
- 【Druid】Druid连接池(二)——配置监控界面