RxJava1.0+Retrofit结合使用

来源:互联网 发布:什么是软件质量 编辑:程序博客网 时间:2024/06/04 18:24
/*rx-android-java*/compile 'io.reactivex:rxjava:1.0.14'compile 'io.reactivex:rxandroid:1.0.1'/*rotrofit*/compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4'//Retrofit2所需要的包compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'//ConverterFactory的Gson依赖包
compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'//rxjava与retrofit交互需要的适配器
ApiNet接口
@GET("nba/?key=71e58b5b2f930eaf1f937407acde08fe&num=10")Observable<UserBean<GeryList>> getData();
Maintivity类
package com.example.yangshuan12_06;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.util.Log;import java.util.List;import retrofit2.Retrofit;import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory;import retrofit2.converter.gson.GsonConverterFactory;import rx.Observable;import rx.Scheduler;import rx.Subscriber;import rx.schedulers.Schedulers;public class MainActivity extends AppCompatActivity {    private RecyclerView recy;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        recy =(RecyclerView)findViewById(R.id.recy);        //设置布局管理器        LinearLayoutManager manager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);        recy.setLayoutManager(manager);        Retrofit build = new Retrofit.Builder()                .addConverterFactory(GsonConverterFactory.create())                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())                .baseUrl("http://api.tianapi.com/")                .build();        ApiNet apiNet = build.create(ApiNet.class);        Observable<UserBean<GeryList>> data = apiNet.getData();        data.subscribeOn(Schedulers.io())                .observeOn(Schedulers.newThread())                .subscribe(new Subscriber<UserBean<GeryList>>() {                    @Override                    public void onCompleted() {                    }                    @Override                    public void onError(Throwable e) {                    }                    @Override                    public void onNext(UserBean<GeryList> geryListUserBean) {                        List<GeryList> newslist = geryListUserBean.getNewslist();                        Log.e("TAG",newslist.toString());                        recy.setAdapter(new MyAdapter(newslist,MainActivity.this));                    }                });    }}



原创粉丝点击