LoginContract:
package com.baway.firstweek.mvp;
import com.baway.firstweek.MainActivity;
public interface LoginContract {
//Iview
interface ILoginView{
void getPreData(String data);
}
//Imodel
interface ILoginModel{
void getRequester(String url,String username,String pwd,ModelCallBack callBack);
interface ModelCallBack{
void onSuccess(String data);
void onFail();
}
}
//Ipresenter
interface ILoginPresenter{
void attch(MainActivity mainActivity);
void detch();
void login(String url,String username,String pwd);
}
}
IOneContract:
package com.baway.firstweek.mvp.onemvp;
public interface IOneContract {
public interface IView{
void getPresenter(String name);
}
public interface IModel{
void one(IModel.CallBack callBack);
interface CallBack{
void onSuccess(String names);
void onFail();
}
}
public interface IPresenter{
void getModel();
void attch(IView view);
void detch();
}
}
登录model
package com.baway.firstweek.mvp.onemvp;
import com.baway.firstweek.net.AsyncHttpClient;
public class Model implements IOneContract.IModel{
public static final String BaseUrl = "http://172.17.8.100/movieApi/cinema/v1/findRecommendCinemas?page=1&count=10";
@Override
public void one(final IOneContract.IModel.CallBack callBack) {
AsyncHttpClient.getInstance().GetAsync(BaseUrl, new AsyncHttpClient.AsyncCallback() {
@Override
public void Error(int errorcode, String message) {
}
@Override
public void Succore(String result) {
callBack.onSuccess(result);
}
});
}
}
登录presenter
package com.baway.firstweek.mvp.onemvp;
import android.util.Log;
import static android.content.ContentValues.TAG;
public class Presenter implements IOneContract.IPresenter{
private Model model;
IOneContract.IView iView;
@Override
public void getModel() {
}
@Override
public void attch(final IOneContract.IView view) {
model = new Model();
this.iView = view;
model.one(new IOneContract.IModel.CallBack() {
@Override
public void onSuccess(String names) {
view.getPresenter(names);
Log.i(TAG, "onSuccess: " + names);
}
@Override
public void onFail() {
}
});
}
@Override
public void detch() {
if (model != null){
model = null;
}
if (iView != null){
iView = null;
}
}
}
MVP展示model
Loginmodel:
package com.baway.firstweek.mvp;
import com.baway.firstweek.net.AsyncHttpClient;
public class LoginModel implements LoginContract.ILoginModel{
@Override
public void getRequester(String url, String username, String pwd, final ModelCallBack callBack) {
AsyncHttpClient.getInstance().PostAsync(url, username, pwd, new AsyncHttpClient.AsyncCallback() {
@Override
public void Error(int errorcode, String message) {
}
@Override
public void Succore(String result) {
callBack.onSuccess(result);
}
});
}
}
LoginPresenter:
package com.baway.firstweek.mvp;
import com.baway.firstweek.MainActivity;
public class LoginPresenter implements LoginContract.ILoginPresenter{
private LoginModel loginModel;
MainActivity iLoginView;
@Override
public void attch(MainActivity mainActivity) {
loginModel = new LoginModel();
this.iLoginView = mainActivity;
}
@Override
public void detch() {
if (loginModel != null){
loginModel = null;
}
if (iLoginView != null){
iLoginView = null;
}
System.gc();
}
@Override
public void login(String url, String username, String pwd) {
loginModel.getRequester(url, username, pwd, new LoginContract.ILoginModel.ModelCallBack() {
@Override
public void onSuccess(String data) {
iLoginView.getPreData(data);
}
@Override
public void onFail() {
}
});
}
}