美文网首页
Retorfit+mvp网络请求

Retorfit+mvp网络请求

作者: 49a35d1f708c | 来源:发表于2019-03-24 21:04 被阅读0次

    model

    package com.bawei.gsc.gsc0324;
    
    import io.reactivex.Observable;
    
    public class AModel implements Contart.IModel {
    
        private Apresenter apresenter;
    
        public AModel(Apresenter apresenter) {
            this.apresenter = apresenter;
        }
    
        @Override
        public void getloginModel(String phone, String pwd) {
            Observable<ABean> data = RetrofitUtils.getmInstance().getservice().getData(phone, pwd);
            apresenter.getloginPresenter(data);
        }
    }
    

    presenter

    public class Apresenter implements Contart.IPresenter {
    
        private AModel aModel;
        private Contart.IView iView;
    
        public Apresenter(Contart.IView iView) {
            this.iView = iView;
            aModel = new AModel(this);
        }
        public void getkey(String key,String pwd){
            aModel.getloginModel(key, pwd);
        }
        @Override
        public void getloginPresenter(Observable<ABean> abean) {
            abean.subscribeOn(Schedulers.io())
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribe(new Observer<ABean>() {
                        @Override
                        public void onSubscribe(Disposable d) {
    
                        }
    
                        @Override
                        public void onNext(ABean aBean) {
                            iView.success(aBean);
                        }
    
                        @Override
                        public void onError(Throwable e) {
                            iView.failure(e.getMessage());
                        }
    
                        @Override
                        public void onComplete() {
    
                        }
                    });
        }
    }
    

    RetrofitUtils

    public class RetrofitUtils {
    
        private static RetrofitUtils mInstance;
        private final Retrofit retrofit;
    
        public static RetrofitUtils getmInstance() {
            if (mInstance==null){
                synchronized (RetrofitUtils.class){
                    if (mInstance==null){
                        mInstance=new RetrofitUtils();
                    }
                }
            }
            return mInstance;
        }
    
        private RetrofitUtils() {
            retrofit = new Retrofit.Builder()
                    .baseUrl("")
                    .addConverterFactory(GsonConverterFactory.create())
                    .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                    .build();
        }
    
        public WeiduService getservice(){
            return retrofit.create(WeiduService.class);
        }
    
    }
    
    
    public class MainActivity extends AppCompatActivity implements Contart.IView{
    
        private FragmentManager supportFragmentManager;
        private OneFragment oneFragment;
        private TwoFragment twoFragment;
        private FragmentTransaction fragmentTransaction;
        private FrameLayout frame;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
            toolbar.setTitle("");
            setSupportActionBar(toolbar);
            frame = findViewById(R.id.frame);
            supportFragmentManager = getSupportFragmentManager();
            oneFragment = new OneFragment();
            twoFragment = new TwoFragment();
            fragmentTransaction = supportFragmentManager.beginTransaction();
            fragmentTransaction.add(R.id.frame,oneFragment);
            fragmentTransaction.add(R.id.frame,twoFragment);
            fragmentTransaction.commit();
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.menu_main, menu);
            return true;
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            // Handle action bar item clicks here. The action bar will
            // automatically handle clicks on the Home/Up button, so long
            // as you specify a parent activity in AndroidManifest.xml.
            int id = item.getItemId();
    
            FragmentTransaction transaction = supportFragmentManager.beginTransaction();
            if (id==R.id.reying){
                transaction.show(oneFragment).hide(twoFragment).commit();
                Toast.makeText(this, "第一", Toast.LENGTH_SHORT).show();
                return true;
            }else if (id==R.id.shangying){
                transaction.show(twoFragment).hide(oneFragment).commit();
                Toast.makeText(this, "第二", Toast.LENGTH_SHORT).show();
                return true;
            }
    
            return super.onOptionsItemSelected(item);
        }
    
        @Override
        public void success(ABean aBean) {
    
        }
    
        @Override
        public void failure(String msg) {
    
        }
    }
    

    相关文章

      网友评论

          本文标题:Retorfit+mvp网络请求

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