Mainactivity package Com.bwie.shexinhai;import Android.os.bundle;import android.support.v7.app.AppCompatActivity; Import Android.support.v7.widget.linearlayoutmanager;import Android.support.v7.widget.recyclerview;import Com.bwie.shexinhai.adapter.myadapter;import Com.bwie.shexinhai.presenter.showpresenter;import Com.bwie.shexinhai.presenter.showpresenterimpl;import Com.bwie.shexinhai.view.showview;import Com.facebook.drawee.backends.pipeline.fresco;import Com.youth.banner.banner;import Java.util.ArrayList;import Java.util.list;public class Mainactivity extends Appcompatactivity implements ShowView {private Banner Banner; Private Recyclerview Recycleview; Private list<bean.databean.defaultgoodslistbean>list; Private Linearlayoutmanager Manager; Private list<string> mlistimage; Private Myadapter adapter; Private Showpresenter presenter; @Override protected void OnCreate (Bundle savedinstancestate) {super.oncreate (savedinstancestate); FResco.initialize (this); Setcontentview (R.layout.activity_main); Recycleview = (Recyclerview) Findviewbyid (r.id.myrecycle); banner= (Banner) Findviewbyid (R.id.mybanner); Manager = new Linearlayoutmanager (this); Recycleview.setlayoutmanager (manager); P Associated v presenter = new Showpresenterimpl (this); P Association m Do Network request presenter.relevance (); Method of loading Pictures Banner.setimageloader (New Glideimageloader ()); Mlistimage= new arraylist<> (); Add a Web address to the collection of pictures Mlistimage.add ("https://image.yunifang.com/yunifang/images/goods/2076/goods_img/ 170930212555714134276722977.jpg "); Mlistimage.add ("https://image.yunifang.com/yunifang/images/goods/temp/171011192212214258195254179.jpg"); Mlistimage.add ("https://image.yunifang.com/yunifang/images/goods/temp/17101119283583452898243380.jpg"); Mlistimage.add ("https://image.yunifang.com/yunifang/images/goods/2091/goods_img/170905172822119555059792173. JPG "); Set Banner Picture Collection banner.setimages (mlistimage); Switching time Banner.setdelaytime (2000); Start Banner Banner.start (); } @Override public void ShowData (Bean news) {list = News.getdata (). Getdefaultgoodslist (); adapter = new Myadapter (mainactivity.this,list); Recycleview.setadapter (adapter); }}
Onfinishlistenerpublic interface Onfinishlistener { void success (bean bean);}
Bannerpackage Com.bwie.shexinhai;import Android.content.context;import Android.widget.imageview;import Com.bumptech.glide.glide;import com.youth.banner.loader.imageloader;/** * Created by Shing Sea on 2017/12/4. */public class Glideimageloader extends Imageloader { @Override public void DisplayImage (context context, Object path, ImageView ImageView) { //use Glide to load picture glide.with (context). Load (path). into (ImageView); }}
Viewpublic interface ShowView { void ShowData (Bean news);}
Retrofitutils Package Com.bwie.shexinhai.utils;import Android.util.log;import Java.util.concurrent.timeunit;import OKHTTP3. Okhttpclient;import Okhttp3.logging.httplogginginterceptor;import Retrofit2. Retrofit;import Retrofit2.adapter.rxjava.rxjavacalladapterfactory;import Retrofit2.converter.gson.gsonconverterfactory;public class Retrofitutils {private static retrofitutils RetrofitUtils ; Private Retrofitutils () {} public static retrofitutils getinstance () {if (retrofitutils==null) {syn Chronized (Retrofitutils.class) {if (retrofitutils==null) {retrofitutils=new retrofitutil S (); }}} return retrofitutils; } private static Retrofit Retrofit; public static synchronized Retrofit getretrofit (String url) {httplogginginterceptor httplogginginterceptor=new Http Logginginterceptor (New Httplogginginterceptor.logger () {@Override public void log (String message{log.i ("xxx", message); } }); Httplogginginterceptor.setlevel (HttpLoggingInterceptor.Level.BODY); Okhttpclient okhttpclient=new Okhttpclient.builder (). Addinterceptor (Httplogginginterceptor) . ConnectTimeout (Timeunit.seconds). ReadTimeout (500,timeunit.seconds). Retryonconnectio Nfailure (False). build (); if (retrofit==null) {retrofit=new retrofit.builder (). BASEURL (URL). Client (Okhttpclient) . Addconverterfactory (Gsonconverterfactory.create ()). Addcalladapterfactory (Rxjavacalladap Terfactory.create ()). build (); } return retrofit; } public <t>t Getapiservice (String url,class<t> cl) {Retrofit Retrofit = getretrofit (URL);//Get Retrof It return retrofit.create (CL);//Returns the network interface object}}
Showpresenterimpl Package Com.bwie.shexinhai.presenter;import Com.bwie.shexinhai.bean;import Com.bwie.shexinhai.model.showmodel;import Com.bwie.shexinhai.model.showmodelimpl;import Com.bwie.shexinhai.onfinishlistener;import com.bwie.shexinhai.view.showview;/** * Created by 佘鑫 Sea on 2017/12/4. */public class Showpresenterimpl implements Showpresenter,onfinishlistener { ShowView ShowView; Private final Showmodel Showmodel; Initialize public Showpresenterimpl (ShowView showview) { This.showview = ShowView; polymorphic Showmodel = new Showmodelimpl (); } @Override public Void Relevance () { //p associated with M Showmodel.getdata (this); } @Override public void Success (Bean news) { showview.showdata (news);} }
Showpresenter Package com.bwie.shexinhai.presenter;/** * Created by Shing Sea on 2017/12/4. */public interface Showpresenter { void relevance ();}
Modelpackage Com.bwie.shexinhai.model;import Com.bwie.shexinhai.apicls.api;import Com.bwie.shexinhai.apicls.apiservice;import Com.bwie.shexinhai.bean;import Com.bwie.shexinhai.OnFinishListener; Import Com.bwie.shexinhai.utils.retrofitutils;import Rx. Observable;import Rx. Observer;import rx.android.schedulers.androidschedulers;import rx.schedulers.schedulers;/** * Created by 佘鑫 Hai on 2017/ 12/4. */public class Showmodelimpl implements Showmodel {@Override public void GetData (final Onfinishlistener listener) { Apiservice Apiservice = Retrofitutils.getinstance (). Getapiservice (Api.api_data, Apiservice.class); observable<bean> Observable = Apiservice.getdata (); Observable.subscribeon (Schedulers.io ()). Observeon (Androidschedulers.mainthread ()). Subscrib E (New observer<bean> () {@Override public void oncompleted () { } @Override Public VOID OnError (Throwable e) {} @Override public void OnNext (Bean is AN) {listener.success (bean); } }); } }
Modelpackage com.bwie.shexinhai.model;import com.bwie.shexinhai.onfinishlistener;/** * Created by 佘鑫 Hai on 2017/12/4. */public interface Showmodel { void GetData (Onfinishlistener listener);}
Apiservice package Com.bwie.shexinhai.apicls;import com.bwie.shexinhai.bean;import retrofit2.http.get;import Rx. observable;/** * Created by Shing Sea on 2017/12/4. */public interface Apiservice { @GET ("Umipmfs6c83237d9c70c7c9510c9b0f97171a308d13b611?uri=homepage") Observable<bean> getData ();}
Apipackage com.bwie.shexinhai.apicls;/** * Created by Shing Sea on 2017/12/4. */public class Api { public static final String api_data = "http://result.eolinker.com/";}
Adapterpackage Com.bwie.shexinhai.adapter;import Android.content.context;import Android.support.v7.widget.recyclerview;import Android.view.view;import Android.view.viewgroup;import Android.widget.textview;import Com.bumptech.glide.glide;import Com.bwie.shexinhai.bean;import Com.bwie.shexinhai.r;import Com.facebook.drawee.view.simpledraweeview;import Java.util.ArrayList;import java.util.list;/** * Created by Shing Sea on 2017/12/4. */public class Myadapter extends Recyclerview.adapter<myadapter.viewholder> {private context context; Private list<bean.databean.defaultgoodslistbean> List; Public Myadapter (context context, list<bean.databean.defaultgoodslistbean> List) {this.context = context; This.list = list; } @Override Public Viewholder oncreateviewholder (viewgroup parent, int viewtype) {View view = View.inflate (c Ontext, R.layout.activity_item, NULL); Viewholder holder = new Viewholder (view); return holder; } @OveRride public void Onbindviewholder (viewholder holder, int position) {Glide.with (context). Load (List.get (position ). Getgoods_img ()). into (Holder.imglogo); Holder.txtName.setText (List.get (position). Getgoods_name ()); Holder.txtName2.setText (List.get (position). Getgoods_name ()); Holder.imgLogo2.setImageURI (List.get (position). GETGOODS_IMG ()); } @Override public int getitemcount () {return list.size (); public void SetData (bean bean) {if (this.list = = null) {this.list = new arraylist<> (); } this.list.addAll (Bean.getdata (). Getdefaultgoodslist ()); Notifydatasetchanged (); } class Viewholder extends recyclerview.viewholder{private Simpledraweeview Imglogo; Private TextView txtname; Private Simpledraweeview ImgLogo2; Private TextView txtName2; Public Viewholder (View Itemview) {super (Itemview); Imglogo = Itemview.findviewbyid (r.id.myimage1); ImgLogo2 = Itemview.findviewbyid (r.id.myimage2); Txtname = Itemview.findviewbyid (R.ID.MYTEXT2); TxtName2 = Itemview.findviewbyid (R.id.mytext); } }}
Compile ' com.android.support:appcompat-v7:26.+ ' compile ' com.youth.banner:banner:1.4.9 ' compile ' com.github.bumptech.glide:glide:4.0.0 ' compile ' com.android.support:recyclerview-v7:21.0.+ ' compile ' com.facebook.fresco:fresco:0.14.1 ' compile ' com.squareup.retrofit2:retrofit:2.3.0 ' compile ' com.squareup.retrofit2:adapter-rxjava:2.0.1 ' compile ' io.reactivex:rxandroid:1.1.0 ' compile ' com.squareup.okhttp3:okhttp:3.0.0 ' compile ' com.squareup.okio:okio:1.5.0 ' compile ' com.squareup.okhttp3 : logging-interceptor:3.4.1 ' compile ' com.squareup.retrofit2:converter-gson:2.3.0 ' compile ' com.android.support.constraint:constraint-layout:1.0.2 ' testcompile ' junit:junit:4.12 '
MVP Retrofit Okhttp Rxjava