Hello Friends,
Today I am going to share a very simple example of Android MVP.
In this sample I am using MVP pattern for network call and and user
form(login form) data validation which is mainly used in most of the android
application.
Model View Presenter divides application into three layers i.e: Model, View and Presenter.
Today I am going to share a very simple example of Android MVP.
In this sample I am using MVP pattern for network call and and user
form(login form) data validation which is mainly used in most of the android
application.
Model View Presenter divides application into three layers i.e: Model, View and Presenter.
- Model: This handles the data part of our application
- Presenter: It acts as a bridge that connects a Model and a View.
- View: This is responsible for laying out views with the relevant data as instructed by the Presenter
Note: The View never communicates with Model directly
1. LoginActivity.java
- package android.developer.solutions.androidmvp.activity.login.view;
- import android.content.Intent;
- import android.developer.solutions.androidmvp.R;
- import android.developer.solutions.androidmvp.activity.home.view.HomeActivity;
- import android.developer.solutions.androidmvp.activity.login.interactor.LoginInteractorImpl;
- import android.developer.solutions.androidmvp.activity.login.presenter.ILoginPresenter;
- import android.developer.solutions.androidmvp.activity.login.presenter.LoginPresenterImpl;
- import android.os.Bundle;
- import android.support.v7.app.AppCompatActivity;
- import android.view.View;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.ProgressBar;
- public class LoginActivity extends AppCompatActivity implements ILoginView {
- EditText username;
- EditText password;
- ProgressBar progress;
- Button button;
- private ILoginPresenter presenter;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_login);
- progress = (ProgressBar) findViewById(R.id.progress);
- button = (Button) findViewById(R.id.btnLogin);
- password = (EditText) findViewById(R.id.password);
- username = (EditText) findViewById(R.id.username);
- presenter = new LoginPresenterImpl(this, new LoginInteractorImpl());
- button.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- presenter.validateCredentials(username.getText().toString(), password.getText().toString());
- }
- });
- }
- @Override
- protected void onDestroy() {
- presenter.onDestroy();
- super.onDestroy();
- }
- @Override
- public void showProgress() {
- progress.setVisibility(View.VISIBLE);
- }
- @Override
- public void hideProgress() {
- progress.setVisibility(View.GONE);
- }
- @Override
- public void setUsernameError() {
- username.setError("Invalid user name");
- }
- @Override
- public void setPasswordError() {
- password.setError("Invalid password");
- }
- @Override
- public void navigateToHome() {
- startActivity(new Intent(this, HomeActivity.class));
- finish();
- }
- }
2. ILoginView.java
Download complete code from here
Hope this will helps some one.
Enjoy Coding............ :)
- package android.developer.solutions.androidmvp.activity.login.view;
- /**
- * Created by Mukesh on 12/16/2017.
- * androiddevelopersolutions.com
- */
- public interface ILoginView {
- void showProgress();
- void hideProgress();
- void setUsernameError();
- void setPasswordError();
- void navigateToHome();
- }
Download complete code from here
Hope this will helps some one.
Enjoy Coding............ :)
0 comments:
Post a Comment