天天看點

android+mvp+登入案例,android mvp實作登入

android的mvp是什麼呢?

Model:用于資料的增删改查等,也包括一些資料對象 ,主要用來處理一些業務操作。 View:用于界面的顯示與使用者操作的接收,在Android裡面View通常就是Actvitiy,Fragment。 Presenter:是View跟Model的“中間人”,接收View的請求後,從Model擷取資料交給View。

調用過程:view->Presenter->Model,如果model有傳回值,就傳回給view.

Model關鍵代碼如下:

public void login(UserBean login) {

if (username != null && "gu".equals(username))

if (password != null && "123".equals(password))

status = true;

listener.loginStatus(status);

}

由此可見,model就是一個bean和處理一些邏輯業務的類,還有一個回調函數。使用者名是gu,密碼是:123。

view的關鍵代碼如下:

private LoginPresenter loginPresenter;

login.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

loginPresenter.login();

}

});

由此可見,view是一個activity用于初值化控件和一些控件使用,并調用的是

Presenter類。

Presenter關鍵代碼如下:

public class LoginPresenterImpl implements LoginPresenter, OnLoginListener{

private UserBiz userBiz;

private LoginView loginView;

public LoginPresenterImpl(LoginView loginView){

this.loginView = loginView;

userBiz = new UsrBizImpl(this);

}

@Override

public void login() {

UserBean login = new UserBean();

login.setUsername(loginView.getUsername());

login.setPassword(loginView.getPassword());

userBiz.login(login);

}

@Override

public void clear() {

loginView.clearPassword();

loginView.clearUsername();

}

@Override

public void loginStatus(boolean status) {

String msg;

if (status)

msg = "login succeed";

else

msg = "login failed";

loginView.showMsg(msg);

}

}

由此可見,

Presenter

是通過構造函數來初值化view和執行個體化bean來實作添加資料,用于接收view的資料和從model傳回資料,是View跟Model的“中間人”。

想看例子的看客們:點選下載下傳