retrofit+Rxjava
来源:互联网 发布:大数据平台 竞品分析 编辑:程序博客网 时间:2024/05/19 23:25
这次需要的依赖有点多~
compile 'com.squareup.retrofit2:retrofit:2.0.2'// Retrofit库compile 'com.squareup.okhttp3:okhttp:3.1.2'// Okhttp库compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta3'//gson解析器compile 'io.reactivex:rxjava:1.0.14'compile 'io.reactivex:rxandroid:1.0.1'compile 'com.squareup.retrofit2:adapter-rxjava:2.0.2'compile 'com.squareup.retrofit2:retrofit:2.0.2'compile 'com.android.support:recyclerview-v7:26.0.0-alpha1'compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
先看看接口public interface Interface {
@GET("v1/restserver/ting?method=baidu.ting.billboard.billList") Observable<Bean> getBean(@Query("type") String type,@Query("size") String size,@Query("offset") String offset);}网络拦截器参考上一个OKhttp+Rxjava因为用的都是一个接口不同的实现网络罢了,所以我就先整网路请求代码。
package com.example.rxjava;import android.content.Context;import android.util.Log;import okhttp3.OkHttpClient;import retrofit2.GsonConverterFactory;import retrofit2.Retrofit;import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory;import rx.Subscriber;import rx.android.schedulers.AndroidSchedulers;import rx.schedulers.Schedulers;public class RetrofitUntils { private static RetrofitUntils retrofitUntils; private Context context; private RetrofitUntils(Context context){ this.context = context ; } public static RetrofitUntils getRetrofitUntils(Context context){ if(retrofitUntils==null){ synchronized (RetrofitUntils.class){ if(retrofitUntils==null){ retrofitUntils = new RetrofitUntils(context); } } } return retrofitUntils ; } public void get(String type,String size,String offset, final NetClickListener netClickListener){ OkHttpClient.Builder ok = new OkHttpClient.Builder(); ok.addInterceptor(new LoggingInterceptor()); Retrofit retrofit = new Retrofit.Builder() //这里的url与实现接口中的url拼接成一个完整的URL .baseUrl("http://tingapi.ting.baidu.com/") .client(ok.build()) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .build(); Log.d("aaaaa","zh执行"); retrofit.create(Interface.class) // 接口穿啥写啥 .getBean(type,size,offset) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Subscriber<Bean>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(Bean baseBean) { netClickListener.Suesses(baseBean); } }); }}package com.example.rxjava;import android.content.Context;import android.support.v7.widget.RecyclerView;import android.util.Log;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.TextView;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.List;public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHondler>{ Context context; List<Bean.SongListBean> list;public MyAdapter(Context context, List<Bean.SongListBean> list) { this.context = context; this.list = list; }@Overridepublic MyViewHondler onCreateViewHolder(ViewGroup parent, int viewType) { View view=View.inflate(context,R.layout.recyclerview_item1,null); MyViewHondler myViewHondler=new MyViewHondler(view); return myViewHondler; }@Overridepublic void onBindViewHolder(MyViewHondler holder, int position) { Log.e("list",list.get(0).getAuthor()); ImageLoader.getInstance().displayImage(list.get(position).getPic_small(),holder.im, Myapp.getDisk()); holder.tv.setText(list.get(position).getAuthor()); }@Overridepublic int getItemCount() { return list.size(); }public class MyViewHondler extends RecyclerView.ViewHolder{ ImageView im; TextView tv; public MyViewHondler(View itemView) { super(itemView); im= itemView.findViewById(R.id.recyclerview_img); tv= itemView.findViewById(R.id.recyclerview_text); }}}主页面Activity的展示想多而言就好package com.example.rxjava;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import java.util.List;public class MainActivity extends AppCompatActivity {private RecyclerView rv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); rv= (RecyclerView) findViewById(R.id.rv); RetrofitUntils.getRetrofitUntils(this).get("1", "10", "1", new NetClickListener() { @Override public void Suesses(Bean baseBean) { LinearLayoutManager linearLayoutManager = new LinearLayoutManager(MainActivity.this); rv.setLayoutManager(linearLayoutManager);// Log.d("list",baseBean.getSong_list().get(1).getAuthor()); List<Bean.SongListBean> list = baseBean.getSong_list(); MyAdapter adapter=new MyAdapter(MainActivity.this,list); rv.setAdapter(adapter); } @Override public void Error(String msg) { } }); }}
阅读全文
0 0
- Retrofit+Rxjava
- Retrofit+RxJava
- Retrofit+RxJava
- Retrofit+RxJava
- Retrofit+RxJava
- RxJava+Retrofit
- rxjava+retrofit
- RxJava&Retrofit
- Retrofit+Rxjava
- Retrofit+RxJava
- RXJava & Retrofit
- Rxjava+retrofit
- rxjava+retrofit
- Rxjava & Retrofit
- retrofit+Rxjava
- Retrofit + RxJava
- RxJava + Retrofit
- retrofit-rxjava封装、mvp-retrofit-rxjava demo
- Java 多线程编程
- 笔记
- 进程外COM组件实现IRpcChannelBuffer接口,客户端通过代理接口跨进程调用(有代码)
- 浏览器关闭 session并不会被干掉
- Python数据处理(整理更新中...)
- retrofit+Rxjava
- 每个年轻设计师都需要知道的10件事
- Fragment中百度地图API解决 android 6.0无法定位的问题,一片蓝色,返回4.9E-324
- 求助:usb audio hid 设备的配置描述符无效:4个接口,1个AC,2个AS,1个HID。播放是双通道的,录音是单通道的。原本配置描述符里录音也是双通道
- jquery通过id或name获取radio选中值
- Python操作cassandra
- 惊!阿里双11数据中心来了一位顶级“刺客”?
- @SuppressWarnings注解什么意思
- Redis源码分析(adlist)