实际操作mvp
来源:互联网 发布:手机淘宝6.6.0版本 编辑:程序博客网 时间:2024/06/09 18:58
模拟登录实践mvp
1、LoginModel 数据处理操作类
public class LoginModel extends BaseModel {
public LoginModel(Context mContext) {
super(mContext);
}
public void logIn(String phone, String password, final OnFinishedListener listener) {
HttpService essenceService = initRetrofit().create(HttpService.class);
essenceService.login(phone, password)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<String>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
listener.Fialed(new Exception(e));
}
@Override
public void onNext(String model) {
listener.onSuccess(model);
}
});
}
}
2、LogInPresenter与model层建立关系,对LoginModel 处理数据进行调用从而将请求的结果返回给view层
public class LogInPresenter extends BasePresenter<LoginModel> {
public LogInPresenter(Context mContext) {
super(mContext);
}
@Override
public LoginModel bindModel() {
return new LoginModel(getContext());
}
public void login(String phone, String pass) {
getModel().logIn(phone, pass, new OnFinishedListener() {
@Override
public void onSuccess(String result) {
getView().sucess(result);
}
@Override
public void Fialed(Throwable t) {
getView().showLoginFail(t);
}
});
}
}
3、LogInView是一个空接口,根据项目情况而定。
public interface LogInView extends MvpView {
}
LogInActivity最终在activity中进行调用p中的方法:
public class LogInActivity extends BaseActivity {
private LogInPresenter presenter;
@Override
protected MvpPresenter createPresenter() {
return presenter = new LogInPresenter(this);
}
@Override
public void initView() {
setContentView(R.layout.activity_log_in);
}
@Override
public void initData() {
presenter.login("123456789","123123");
}
@Override
public void initEvent() {
}
@Override
public void onClick(View v) {
}
@Override
public void sucess(String result) {
}
@Override
public void showLoginFail(Throwable t) {
}
}
- 实际操作mvp
- mvp开发实际操作
- mysql实际操作
- mvc实际操作
- php实际操作
- MVP
- MVP
- MVP
- MVP
- MVP
- MVP
- MVP
- MVP
- mvp
- MVP
- MVP
- mvp
- MVP
- 学习记录4(17/09/18于成都)
- Edge-based 3D object traking(0)
- HTTP请求、响应报文格式
- HDU2609 How many(字符串的最小表示+set)
- BZOJ1709 超级弹珠SuperPaintball
- 实际操作mvp
- 使用51-android-rules解决ubuntu上不识别 android手机的问题
- RTOS移植提示RAM不够
- 初步学习正则表达式
- 多标签图像分类任务的评价方法-mAP
- Ubuntu python虚拟环境
- Vue2 方法methods和事件修饰符
- Tarjan算法
- 如何实现Android应用程序间的交互