Retrofit+RXJava的使用

来源:互联网 发布:亚马逊云计算业务 编辑:程序博客网 时间:2024/05/16 14:36

首先我们在app的build.gradle中配置:

RXJava配置:

android {    compileSdkVersion 26    buildToolsVersion "26.0.2"    defaultConfig {        applicationId "com.bwie.rxjava"        minSdkVersion 15        targetSdkVersion 26        versionCode 1        versionName "1.0"        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"        //RXjava配置        jackOptions {            enabled true        }    }    compileOptions{        //设置JDK1.8        sourceCompatibility JavaVersion.VERSION_1_8        targetCompatibility JavaVersion.VERSION_1_8    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }    }}

compile 'com.squareup.retrofit2:retrofit:2.0.1'compile 'com.squareup.retrofit2:converter-gson:2.0.1'compile 'com.squareup.retrofit2:adapter-rxjava:2.0.1'compile 'io.reactivex:rxandroid:1.1.0'compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'


API:

public class API {    public static final String  path = "http://api.tianapi.com/";}

APIService:

public interface ApiService {    @GET("social/?key=71e58b5b2f930eaf1f937407acde08fe&num=20")    Observable<Bean>  getpath();}

MainActivity:

private void gethome() {    Retrofit retrofit = new Retrofit.Builder().baseUrl(API.path).addConverterFactory(GsonConverterFactory.create()).addCallAdapterFactory(RxJavaCallAdapterFactory.create()).build();    ApiService apiService  = retrofit.create(ApiService.class);    rx.Observable<Bean> getpath = apiService.getpath();    getpath.subscribeOn(Schedulers.io())            .observeOn(AndroidSchedulers            .mainThread())            .subscribe(new Observer<Bean>() {        @Override        public void onCompleted() {        }        @Override        public void onError(Throwable e) {        }        @Override        public void onNext(Bean bean) {            List<Bean.NewslistBean> list = bean.getNewslist();            RecyclerAdapter ra = new RecyclerAdapter(MainActivity.this , list) ;            recycler.setAdapter(ra);            Log.d("MainActivity", "onNext: "+bean.getNewslist().get(0).getTitle());            Toast.makeText(MainActivity.this , bean.getNewslist().get(0).getTitle() , Toast.LENGTH_SHORT).show();        }    });}

原创粉丝点击