RX_JAVA
来源:互联网 发布:windows转换苹果系统 编辑:程序博客网 时间:2024/06/07 02:28
ApiService:
public interface ApiService { //结合Retrofit+RxJava @GET("data.do?channelId=0&startNum=0") Observable<News> getNoParams(); //结合RxJava @GET("users/{user}") Observable<User> getHasParams(@Path("user")String user);}MainActivity: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 linearLayoutManager = new LinearLayoutManager(this); recy.setLayoutManager(linearLayoutManager); getNoParams(); } private void getNoParams() { final Retrofit retrofit = new Retrofit.Builder().baseUrl(Api.BASE_PATH).addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJavaCallAdapterFactory.create())//支持RxJava .build(); ApiService apiService = retrofit.create(ApiService.class); //得到Observable rx.Observable<News> noParams = apiService.getNoParams();//生产事件//被观察者订阅观察 默认在同一个线程 noParams.observeOn(AndroidSchedulers.mainThread())//指定更新UI在主线程 .subscribeOn(Schedulers.io())//指定IO做耗时操作 .subscribe(new Observer<News>() { @Override public void onCompleted() {//完成 } @Override public void onError(Throwable e) {//失败 Log.i("xxx", e.getMessage()); } @Override public void onNext(News news) {//消费事件 /* List<News.AdsBean> ads = news.getAds(); for (int i = 0; i < ads.size(); i++) { News.AdsBean adsBean = ads.get(i); String gonggaoren = adsBean.getGonggaoren(); Log.i("xxx", gonggaoren); }*/ //Toast.makeText(MainActivity.this,news.getData().get(0).getTITLE().toString(),Toast.LENGTH_SHORT).show(); MyApter myApter = new MyApter(MainActivity.this, news); recy.setAdapter(myApter); } }); }}MyAdpter:public class MyApter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{ private News newss; private Context context; public MyApter( Context context,News newss){ this.context=context; this.newss=newss; } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(R.layout.item, null); return new MyApterHolder(view); } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { MyApterHolder holder1 = (MyApterHolder)holder; List<News.DataBean> data = newss.getData(); String title = data.get(position).getTITLE(); holder1.tv.setText(title); } @Override public int getItemCount() { return newss.getData().size(); } class MyApterHolder extends RecyclerView.ViewHolder{ private TextView tv; public MyApterHolder(View itemView) { super(itemView); tv=itemView.findViewById(R.id.tv); } }}依赖: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'compile 'com.android.support:recyclerview-v7:26.0.0-alpha1'
阅读全文
0 0
- RX_JAVA
- Rx_Java基础篇之一
- retrofit与rx_java结合使用基础篇之一
- 数据库 E-R 图
- cookie 和session 的区别
- view 自定义标题+点击才开始的进度条+使用二维码
- 11.3-基本问题 Python
- -(数的分解)
- RX_JAVA
- MATLAB视频水印与图像水印的区别?
- 笨办法学python习题5 更多的变量和打印
- 哈密顿绕行世界问题(DFS)
- lab3
- 笔记本充电断网问题
- typedef
- Jstorm最佳实践
- TensorFlow restore模型时报错tensorflow.python.framework.errors_impl.NonArgumentError exception str()