MVP+RxJava+Retrofit实现Banner图
来源:互联网 发布:怎么做淘宝客服教程 编辑:程序博客网 时间:2024/06/09 18:37
导入依赖:
compile 'com.jcodecraeer:xrecyclerview:1.3.2'compile 'com.youth.banner:banner:1.4.9'compile 'com.github.bumptech.glide:glide:3.7.0'
Api
public class Api { public static final String URL="http://apiv3.yangkeduo.com/v5/";}
Apiservice
public interface Apiservier { @GET("newlist?page=1&size=10") Observable<User> getUser();}
Imodel类
public interface Imodel { void getJson(String url);}
Usermodel 类
public class Usermodel implements Imodel{ List<User.GoodsListBean> list; private OnFinish onFinish; public interface OnFinish{ void OnFinishListener(List<User.GoodsListBean> list); } public void setOnFinish(OnFinish finish){ this.onFinish=finish; } @Override public void getJson(String url) { Retrofit retrofit = new Retrofit.Builder().baseUrl(url).addConverterFactory(GsonConverterFactory.create()).addCallAdapterFactory(RxJavaCallAdapterFactory.create()).build(); Apiservier apiService = retrofit.create(Apiservier.class); final Observable<User> home = apiService.getUser(); home.subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer<User>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { Log.d("11111111111","11111111111"); } @Override public void onNext(User user) { list = (List<User.GoodsListBean>) user.getGoods_list(); onFinish.OnFinishListener(list); } }); }}
Presenter 类
public class Presenter implements Usermodel.OnFinish { private final Iview userView; private final Usermodel userModel; public Presenter(Iview userView) { this.userView = userView; this.userModel = new Usermodel(); userModel.setOnFinish(this); } public void setNews(String url){ userModel.getJson(url); } @Override public void OnFinishListener(List<User.GoodsListBean> list) { userView.getUsee(list); }}
GlideImageLoader类
import android.content.Context;import android.widget.ImageView;import com.bumptech.glide.Glide;import com.youth.banner.loader.ImageLoader;/** * Created by wangjiao on 2017/10/14. */public class GlideImageLoader extends ImageLoader { @Override public void displayImage(Context context, Object path, ImageView imageView) { Glide.with(context).load(path).into(imageView); }}
Activity类:
public class Sencend extends AppCompatActivity implements Iview{ Banner mbanner; Presenter userPresenter; HomeAdapter homeAdapter; XRecyclerView xrecyclerView; private int curr; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_sencend); mbanner = (Banner) findViewById(R.id.mybanner); xrecyclerView = (XRecyclerView) findViewById(R.id.xre_xrv); userPresenter = new Presenter(this); userPresenter.setNews(Api.URL); xrecyclerView.setLoadingListener(new XRecyclerView.LoadingListener() { @Override public void onRefresh() { curr=0;// list.clear();// get(Api.URL,curr); xrecyclerView.refreshComplete(); } @Override public void onLoadMore() { curr++; xrecyclerView.refreshComplete(); } }); } @Override public void getUsee(List<User.GoodsListBean> list) { Log.d("99999999999",list.get(2).toString()+"1111"); homeAdapter = new HomeAdapter(list,Sencend.this); xrecyclerView.setAdapter(homeAdapter); xrecyclerView.setLayoutManager(new LinearLayoutManager(this)); //轮播 List<String> mlist = new ArrayList<String>(); for(int i=0; i<list.size();i++){ String ad1s = list.get(i).getImage_url(); mlist.add(ad1s); } //设置图片加载器 mbanner.setImageLoader(new GlideImageLoader()); mbanner.setImages(mlist); mbanner.start(); }}
布局
<LinearLayout android:id="@+id/linearLayout" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="200dp" > <com.youth.banner.Banner android:id="@+id/mybanner" android:layout_width="match_parent" android:layout_height="200dp"> </com.youth.banner.Banner> </LinearLayout> <LinearLayout android:layout_below="@+id/linearLayout" android:layout_width="match_parent" android:layout_height="wrap_content"> <com.jcodecraeer.xrecyclerview.XRecyclerView android:layout_width="match_parent" android:id="@+id/xre_xrv" android:layout_height="wrap_content"> </com.jcodecraeer.xrecyclerview.XRecyclerView> </LinearLayout>
阅读全文
0 0
- MVP+RxJava+Retrofit实现Banner图
- Rxjava+Retrofit+okhttp+mvp实现
- MVP+Retrofit+RxJava实现分类
- 终极封装 Rxjava+Retrofit+okhttp+mvp实现
- Android--MVP+Retrofit+Rxjava的实现
- 简单实现断点续传+MVP+Retrofit+RxJava
- Retrofit+RxJava+Mvp实现多线程视频下载
- MVP(Retrofit+RXJava)实现网络请求
- 使用MVP+Retrofit+RXJava实现仿京东分类
- RxJava+Retrofit+Mvp实现购物车
- Rxjava+Retrofit+MVP实现购物车Mode
- MVP+Dagger2+Retrofit+Rxjava
- Retrofit实践(MVP+RxJava)
- Rxjava+MVP+Retrofit强强联合
- MVP、Retrofit、RxJava、RxBus
- Rxjava+retrofit+mvp整合
- MVP+retrofit+rxjava
- Android MVP +Retrofit+RxJava
- mt2503 如何使用META DLL API写两个以上IMEI
- Main
- Caffe训练、测试自己的图片数据
- 《Wide & Deep Learning for Recommender Systems》 学习记录
- 【Scikit-Learn 中文文档】交叉分解
- MVP+RxJava+Retrofit实现Banner图
- greendao 断点 多线程下载
- mysql使用
- 服务器端开发的一些建议
- 备份集中的数据库与现有数据库“XXX”数据库不同
- redmine3.3.1安装与常用插件安装
- Rails日常总结(二)
- SparkStreaming动态读取配置文件
- JavaScript 标签使用及输出语句