美文网首页
Mvp应用方法

Mvp应用方法

作者: 玖玖君 | 来源:发表于2019-07-10 20:23 被阅读0次

    创建包

     api 
     bean 
     callBack 
     model 
     presenter
     view
        
    

    api里面写

        OneApiServer
            String baseUrl="http://gank.io/api/data/";
        @GET("%E7%A6%8F%E5%88%A9/20/1")
        Observable<DayEightBean>getData();
    

    bean写bean包

        callback(interface)里面写
        //成功
            void onSuccess(List<Bean> bean);
        //失败
        void onFail(String fail);
            
        !!model里写
        ··Model
        public interface Model {
        void getData(OneCallBack oneCallBack);
        }
    

    ImpModel

        public class ImpNewsMedel extends Activity implements NewsModel {
        private int page=0;
        public static int clear(int a){
            return a=0;
        }
        public void onResume() {
            super.onResume();
        }
    
        @Override
        public void getNewlsit(final FlCallback flCallback) {
            Retrofit retrofit = new Retrofit.Builder()
                    .addConverterFactory(GsonConverterFactory.create())
                    .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                    .baseUrl(NewsServer.baseUrl)
                    .build();
    
            NewsServer newsServer = retrofit.create(NewsServer.class);
            Observable<NewsBean> observable = newsServer.getUrl("20/"+page+++"");
            observable.subscribeOn(Schedulers.io())
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribe(new Observer<NewsBean>() {
                        @Override
                        public void onSubscribe(Disposable d) {
    
                        }
    
                        @Override
                        public void onNext(NewsBean newsBean) {
                        flCallback.onSuccess(newsBean);
                        }
    
                        @Override
                        public void onError(Throwable e) {
                        flCallback.onFail("net error:"+e.getMessage());
                        }
    
                        @Override
                        public void onComplete() {
    
                        }
                    });
        }
    
    }
    
    

    presenter里写
    ··Presenter

        public interface NewsPresenter {
        void getData();
    }
    
    

    ImpPresenter

    public class Imppresenter implements Adpresenter, Adcallback {
        private Admodel admodel;
        private Adview adview;
    
        public Imppresenter(Impmodel impmodel, Adview adview) {
            this.admodel = impmodel;
            this.adview = adview;
        }
    
        @Override
        public void getData() {
            if (admodel!=null){
                admodel.getData(this);
            }
    
        }
    
        @Override
        public void onSuccess(AdBean adBean) {
            if (adview!=null){
                adview.onSuccess(adBean);
            }
        }
    
        @Override
        public void onFail(String fail) {
            if (adview!=null){
                adview.onFail(fail);
            }
        }
    
    

    View

        public interface NewsView {
        void onSuccess(NewsBean newsBean);
        void onFail(String error);
    }
    
    

    相关文章

      网友评论

          本文标题:Mvp应用方法

          本文链接:https://www.haomeiwen.com/subject/aepkkctx.html