先来一波布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="用户名"/>
<EditText
android:id="@+id/username"
android:layout_width="200dp"
android:layout_height="wrap_content"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="密码"/>
<EditText
android:id="@+id/password"
android:layout_width="200dp"
android:layout_height="wrap_content"/>
</LinearLayout>
<Button
android:id="@+id/login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="20dp"
android:text="登录"
/>
</LinearLayout>
接下来瞅一瞅MainActivity
package com.mvp.mvplogin;
import android.app.ProgressDialog;
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.Toast;
import com.mvp.mvplogin.presenter.Presenter;
public class MainActivity extends AppCompatActivity implements View.OnClickListener, Presenter.mvpLogin {
private EditText mUsername;
private EditText mPassword;
private Button login;
private ProgressDialog mProgressDialog;
private Presenter mPresenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
mUsername = (EditText) findViewById(R.id.username);
mPassword = (EditText) findViewById(R.id.password);
login = (Button) findViewById(R.id.login);
login.setOnClickListener(this);
//动态创建进度条
mProgressDialog = new ProgressDialog(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.login:
//获取账号与密码
final String username = mUsername.getText().toString().trim();
final String password = mPassword.getText().toString().trim();
mPresenter = new Presenter(this);
boolean login = mPresenter.noNullLogin(username, password);
//显示进度条
mProgressDialog.show();
if (login){
mPresenter.login();
}else{
mProgressDialog.dismiss();
Toast.makeText(MainActivity.this, "输入不能为null,么么哒", Toast.LENGTH_SHORT).show();
}
break;
}
}
@Override
public void success() {
runOnUiThread(new Runnable() {
@Override
public void run() {
mProgressDialog.dismiss();
Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
}
});
}
@Override
public void failed() {
runOnUiThread(new Runnable() {
@Override
public void run() {
mProgressDialog.dismiss();
Toast.makeText(MainActivity.this, "登录失败", Toast.LENGTH_SHORT).show();
}
});
}
}
封装工具类
package com.mvp.mvplogin.net;
import com.mvp.mvplogin.User;
/**
* date:2018/11/8
* author:李壮(HUAWEI)
* function:
*/
public class LoginNet {
public boolean login(User user) {
if ("lz".equals(user.username) && "lz".equals(user.password)){
return true;
}else {
return false;
}
}
}
创建Bean类
package com.mvp.mvplogin;
/**
* date:2018/11/8
* author:李壮(HUAWEI)
* function:
*/
public class User {
public String username;
public String password;
}
封装presenter
package com.mvp.mvplogin.presenter;
import android.text.TextUtils;
import com.mvp.mvplogin.User;
import com.mvp.mvplogin.net.LoginNet;
/**
* date:2018/11/8
* author:李壮(HUAWEI)
* function:
*/
public class Presenter {
private User mUser;
public Presenter(mvpLogin mvpLogin) {
mMvpLogin = mvpLogin;
}
public boolean noNullLogin(String username, String password){
//创建Bean类 把数据设置到Bean类
mUser = new User();
mUser.username = username;
mUser.password = password;
if (TextUtils.isEmpty(username) || TextUtils.isEmpty(password)){
return false;
}
return true;
}
public void login(){
new Thread(new Runnable() {
@Override
public void run() {
LoginNet net = new LoginNet();
boolean result = net.login(mUser);
//判断账号密码是否在正确
if (result){
mMvpLogin.success();
}else {
mMvpLogin.failed();
}
}
}).start();
}
////////////使用接口回调///////////
public interface mvpLogin{
//成功
void success();
//失败
void failed();
}
private mvpLogin mMvpLogin;
public void setMvpLogin(mvpLogin mvpLogin){
mMvpLogin = mvpLogin;
}
}