MVP Retrofit Okhttp Rxjava

Source: Internet
Author: User

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

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.