有关Rxjava和retrofit
来源:互联网 发布:八皇后问题递归c语言 编辑:程序博客网 时间:2024/05/17 21:58
先导包:compile 'io.reactivex.rxjava2:rxjava:2.1.0' compile 'com.google.code.gson:gson:2.8.0' compile 'io.reactivex.rxjava2:rxandroid:2.0.1' compile 'com.squareup.retrofit2:retrofit:2.3.0' compile 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0' compile 'com.squareup.retrofit2:converter-gson:2.3.0' compile 'com.github.bumptech.glide:glide:4.0.0-RC0' compile 'com.bigkoo:convenientbanner:2.0.5'//创建Bean类//创建Bean的观察者接口ApiBeanpublic interface ApiTom { //http://news-at.zhihu.com/api/4/news/latest //https://api.douban.com/v2/movie/top250?start=0&count=10 @GET("latest") Observable<TomBean> getTomBean();//注意导包 // @GET("top250") // Observable<TomBean> getTomBean(@Query("start") int start,@Query("count") int count);}//在MainActivity中:public class MainActivity extends AppCompatActivity { private String url="http://news-at.zhihu.com/api/4/news/"; private ConvenientBanner convenientBannerb; private List<TomBean.StoriesBean> list=new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); convenientBannerb = (ConvenientBanner) findViewById(R.id.cb); getTom(); } private void getTom() { //请求框架 Retrofit retrofit=new Retrofit.Builder() .baseUrl(url) .addConverterFactory(GsonConverterFactory.create())//支持gson解析 .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .build(); //动态代理 被观察者 ApiTom apiTom = retrofit.create(ApiTom.class); apiTom.getTomBean() .subscribeOn(Schedulers.io()) //设置事件触发在非主线程 .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer<TomBean>() { @Override public void onSubscribe(@NonNull Disposable d) { //解除订阅 Disposable相当于Rxjava中的subscrib } @Override public void onNext(@NonNull TomBean tomBean) { list.addAll( tomBean.getStories()); } @Override public void onError(@NonNull Throwable e) { } @Override public void onComplete() { convenientBannerb.setPages(new CBViewHolderCreator() { @Override public Object createHolder() { return new MyViewHolder(); } },list) ; } }); } public class MyViewHolder implements Holder<TomBean.StoriesBean> { private ImageView imageView; @Override public View createView(Context context) { imageView = new ImageView(MainActivity.this); imageView.setScaleType(ImageView.ScaleType.FIT_XY); ViewGroup.LayoutParams params=new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,200); imageView.setLayoutParams(params); return imageView; } @Override public void UpdateUI(Context context, int position, TomBean.StoriesBean data) { Glide.with(MainActivity.this) .load(data.getImages().get(0)).into(imageView); } } @Override protected void onResume() { super.onResume(); convenientBannerb.startTurning(3000); } @Override protected void onPause() { super.onPause(); convenientBannerb.stopTurning(); }}//在清单文件中加上联网权限//在布局中:创建ConvenientBanner的布局
阅读全文
0 0
- 有关Rxjava和retrofit
- Android Rxjava和retrofit
- Rxjava和Retrofit相结合
- 初识RxJava和Retrofit
- rxjava和retrofit结合
- Retrofit和RxJava
- 使用 RxJava 和 Retrofit
- RxJava和Retrofit结合
- Retrofit 和 RxJava 结合使用
- Retrofit和RxJava结合使用
- Rxjava和Retrofit网络封装
- RxJava和Retrofit结合使用
- RxJava和Retrofit结合使用
- RxJava和Retrofit的介绍
- 尝试将RxJava和Retrofit
- rxjava 和retrofit 结合使用
- Retrofit、RxJava和OkHttp使用
- Retrofit和RxJava的封装
- 网站发布一般步骤以及解决方法
- React-native or Native 获取及绑定设备唯一标识并存储到keychain
- 【JavaScript设计模式】行为型设计模式--模板方法模式
- Win7屏幕刷新率怎么设置?
- wget失败原因及解决方案
- 有关Rxjava和retrofit
- 集成Kotlin到Android
- Android6.0 UnsatisfiedLinkError couldn't find "xxx.so"
- [leetcode]解题报告121. Best Time to Buy and Sell Stock
- Ubuntu 16.04+ROS kinetic+rviz模拟turtlebot机器人时出现的问题-
- 一次完整的HTTP请求与响应涉及了哪些知识
- JAVA设计模式二简单工厂模式
- js字符串截取函数slice()、substring()、substr()以及split()、John() 、indexOf()的用法
- git遇到的问题之“Please make sure you have the correct access rights and the repository exists.”