我正在使用MVP在我的android應用程序中解耦我的視圖和模型。我需要知道模型如何將業務邏輯的結果反饋到視圖。模型應該如何反饋到android MVP中的視圖?
如果例如按下按鈕登錄,活性將是這樣的,使用butterknife @OnClick
註解:
@OnClick(R.id.login_button)
public void login() {
String email = mEmailEditText.getText().toString();
String password = mPasswordEditText.getText().toString();
LoginCredentials loginCredentials = new LoginCredentials(email, password);
mPresenter.loginWithEmail(loginCredentials);
}
然後演示者將驗證,並向存儲庫的請求:
public void loginWithEmail(LoginCredentials loginCredentials) {
boolean isEmailValid = AuthValidator.validateEmail(loginCredentials.getUsername());
boolean isPasswordValid = AuthValidator.validatePassword(loginCredentials.getPassword());
if(isEmailValid && isPasswordValid) repository.loginEmailUser(loginCredentials);
if (!isEmailValid) view.handleInvalidEmail();
if (!isPasswordValid) view.handleInvalidPassword();
}
版本庫會再執行業務邏輯:
@Override
public void loginEmailUser(LoginCredentials loginCredentials) {
Call<Token> call = userServiceApi.loginInToken(loginCredentials);
call.enqueue(new Callback<Token>() {
@Override
public void onResponse(@NonNull Call<Token> call, @NonNull Response<Token> response) {
if (response.isSuccessful()) {
// handle successful login
} else {
// Handle unsuccessful login
}
}
@Override
public void onFailure(@NonNull Call<Token> call, @NonNull Throwable t) {
// Handle failed request
}
});
如果評論說// handle unsuccessful something
,模型如何向視圖反饋業務邏輯的結果以便視圖能夠處理這些結果?
謝謝。
像往常一樣...有回調 – Selvin
其通過與附加到演示 –
如果我知道那是什麼,我也不會問這個問題的看法的主持人來完成。你能否詳細說明一下? –