Android MVP 基础示例项目教程
1. 项目的目录结构及介绍
项目的目录结构如下:
android-mvp-basic-sample/
├── app/
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ ├── com/
│ │ │ │ │ ├── mindorks/
│ │ │ │ │ │ ├── mvp/
│ │ │ │ │ │ │ ├── ui/
│ │ │ │ │ │ │ │ ├── login/
│ │ │ │ │ │ │ │ │ ├── LoginActivity.java
│ │ │ │ │ │ │ │ │ ├── LoginContract.java
│ │ │ │ │ │ │ │ │ ├── LoginPresenter.java
│ │ │ │ │ │ │ │ │ ├── LoginInteractor.java
│ │ │ │ │ │ │ │ │ ├── LoginInteractorImpl.java
│ │ │ │ │ │ │ │ │ ├── LoginPresenterImpl.java
│ │ │ │ │ │ │ │ │ ├── LoginView.java
│ │ │ ├── res/
│ │ │ │ ├── layout/
│ │ │ │ │ ├── activity_login.xml
│ │ │ ├── AndroidManifest.xml
│ │ ├── build.gradle
├── build.gradle
├── settings.gradle
目录结构介绍
app/src/main/java/com/mindorks/mvp/ui/login/
:包含登录模块的所有Java文件,包括Activity、Presenter、Interactor和Contract接口。app/src/main/res/layout/
:包含登录界面的布局文件。app/src/main/AndroidManifest.xml
:项目的配置文件,定义了应用的组件和权限。app/build.gradle
:应用模块的Gradle构建文件,包含依赖项和编译配置。build.gradle
:项目的根Gradle构建文件。settings.gradle
:项目的设置文件,包含模块的配置。
2. 项目的启动文件介绍
项目的启动文件是 LoginActivity.java
,位于 app/src/main/java/com/mindorks/mvp/ui/login/
目录下。
LoginActivity.java
package com.mindorks.mvp.ui.login;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.mindorks.mvp.R;
public class LoginActivity extends AppCompatActivity implements LoginContract.View {
private LoginPresenter presenter;
private EditText usernameEditText;
private EditText passwordEditText;
private Button loginButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
presenter = new LoginPresenterImpl(this);
usernameEditText = findViewById(R.id.username);
passwordEditText = findViewById(R.id.password);
loginButton = findViewById(R.id.login);
loginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
presenter.performLogin(usernameEditText.getText().toString(), passwordEditText.getText().toString());
}
});
}
@Override
public void showLoginSuccess() {
Toast.makeText(this, "Login Success", Toast.LENGTH_SHORT).show();
}
@Override
public void showLoginFailure() {
Toast.makeText(this, "Login Failure", Toast.LENGTH_SHORT).show();
}
}
启动文件介绍
LoginActivity
是应用的入口Activity,负责显示登录界面和处理用户交互。LoginPresenter
是Presenter层,负责处理业务逻辑。LoginContract
是契约接口,定义了View和Presenter的接口