Android MVP封装模拟登陆
来源:互联网 发布:政府数据库 编辑:程序博客网 时间:2024/06/06 02:49
BaseMVPActivity代码
package com.bwie.myapplication.activity;import android.app.Activity;import android.os.Bundle;/** * Created by hp on 2017/12/5. */public abstract class BaseMVPActivity<V,T extends BasePresenter<V>> extends Activity { public T t; public abstract T initPresenter(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); t = initPresenter(); } @Override protected void onResume() { super.onResume(); t.attach((V) this); } @Override protected void onDestroy() { super.onDestroy(); t.detach(); }}
package com.bwie.myapplication.activity;/** * Created by hp on 2017/12/5. */public class BasePresenter<V> { public V view; public void attach(V v){ this.view = v; } public void detach(){ this.view = null; }}
IApplication代码
package com.bwie.myapplication.activity;import android.app.Application;import retrofit2.Retrofit;import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;import retrofit2.converter.gson.GsonConverterFactory;/** * Created by hp on 2017/12/5. */public class IApplication extends Application { public static IInterface iInterface; @Override public void onCreate() { super.onCreate(); Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://api.tianapi.com") .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .build(); iInterface = retrofit.create(IInterface.class); }}
IInterface
package com.bwie.myapplication.activity;import com.bwie.myapplication.bean.Bean;import java.util.Map;import io.reactivex.Observable;import retrofit2.http.FieldMap;import retrofit2.http.GET;import retrofit2.http.POST;import retrofit2.http.QueryMap;/** * Created by hp on 2017/12/5. */public interface IInterface { @GET("/nba") Observable<Bean> get(@QueryMap Map<String,String> map); @POST("/nba") Observable<Bean> post(@FieldMap Map<String,String> map);}
LoginAcitivity代码
package com.bwie.myapplication.activity;import android.os.Bundle;import android.view.View;import com.bwie.myapplication.R;import com.bwie.myapplication.bean.Bean;import com.bwie.myapplication.presenter.LoginPresenter;import com.bwie.myapplication.view.LoginView;/** * Created by hp on 2017/12/5. */public class LoginActivity extends BaseMVPActivity<LoginView,LoginPresenter> implements LoginView { @Override public LoginPresenter initPresenter() { return new LoginPresenter(); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { t.login("muhanxi","password"); } }); } @Override public void onSuccess(Bean bean) { System.out.println("===================" + bean.toString()); } @Override public void onFailure() { }}
Model层代码
package com.bwie.myapplication.model;import com.bwie.myapplication.activity.IApplication;import com.bwie.myapplication.bean.Bean;import java.util.HashMap;import java.util.Map;import io.reactivex.android.schedulers.AndroidSchedulers;import io.reactivex.functions.Consumer;import io.reactivex.schedulers.Schedulers;/** * Created by hp on 2017/12/5. */public class LoginModel { public void getData(final LoginModelCallBack callBack){ Map<String,String> map = new HashMap<>(); map.put("key","71e58b5b2f930eaf1f937407acde08fe"); map.put("num","20"); IApplication.iInterface.get(map) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Consumer<Bean>() { @Override public void accept(Bean bean) throws Exception { callBack.onSuccess(bean); } }); }}
Model接口代码
package com.bwie.myapplication.model;import com.bwie.myapplication.bean.Bean;/** * Created by hp on 2017/12/5. */public interface LoginModelCallBack { public void onSuccess(Bean bean);}
presenter层代码
package com.bwie.myapplication.presenter;import com.bwie.myapplication.activity.BasePresenter;import com.bwie.myapplication.bean.Bean;import com.bwie.myapplication.model.LoginModel;import com.bwie.myapplication.model.LoginModelCallBack;import com.bwie.myapplication.view.LoginView;/** * Created by hp on 2017/12/5. */public class LoginPresenter extends BasePresenter<LoginView> { LoginModel model; public LoginPresenter() { this.model = new LoginModel(); } public void login(String username,String password){ model.getData(new LoginModelCallBack() { @Override public void onSuccess(Bean bean) { view.onSuccess(bean); } }); }}
view层代码
package com.bwie.myapplication.view;import com.bwie.myapplication.bean.Bean;/** * Created by hp on 2017/12/5. */public interface LoginView { public void onSuccess(Bean bean); public void onFailure();}
阅读全文
0 0
- Android MVP封装模拟登陆
- Android MVP模式之模拟登陆功能
- Android MVP模式之模拟登陆功能
- 采集--封装模拟登陆
- Android MVP架构简单封装
- Android Retrofit+RxJava+MVP封装
- android使用mvp模式实现登陆demo
- MVP登陆
- mvp登陆
- Android中使用MVP的简单封装
- Android之MVP(二)深入封装
- Android MVP+Retrofit(封装)+RxJava实例
- Android MVP架构 完整封装实例
- android模拟登陆正方教务
- Android MVP架构项目搭建封装,基类封装
- Android MVP从懵逼到入门:登陆业务实践
- Android基于MVP框架的联网登陆软件
- Mvp实现登陆注册
- netty编解码之jboss marshalling
- MVP
- 图片缓存
- 从RCNN,Fast-RCNN到Fater-RCNN的演化过程
- C程序之早起
- Android MVP封装模拟登陆
- mvp基类
- 传感器01
- CIA3 NOI接站(tarjan缩环+Floyd传递闭包+可相交最小路径覆盖)
- 算法训练 表达式计算
- mvp(okhttp)请求图片与数据
- 简单注册登录请求
- form表单验证,提交数据显示
- 第二个综合题的布局文件