登录代码MVP架构的具体实现,分享给大家。
MainActivity.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
public class MainActivity extends AppCompatActivity implements View.OnClickListener, Mvp.fff { private EditText mUsername; private EditText mPassword; private Button login; private ProgressDialog mProgressDialog; private Mvp mMvp; @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); mMvp = new Mvp( this ); } 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 view) { switch (view.getId()){ case R.id.login: String user = mUsername.getText().toString(); String pass = mPassword.getText().toString(); final User users = new User(); users.username=user; users.password=pass; Boolean empty = mMvp.isEmpty(users); if (empty){ mProgressDialog.show(); mMvp.isLogin(users); } else { Toast.makeText(MainActivity. this , "输入不能为空" , Toast.LENGTH_SHORT).show(); return ; } 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 doil() { runOnUiThread( new Runnable() { @Override public void run() { mProgressDialog.dismiss(); Toast.makeText(MainActivity. this , "登录失败,账号密码有问题" , Toast.LENGTH_SHORT).show(); } }); } @Override protected void onDestroy() { super .onDestroy(); mMvp= null ; } } |
UserLogin.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
public class UserLogin { //MVC Controller层 public boolean login(User users){ SystemClock.sleep( 1000 ); if ( "frq" .equals(users.username)&& "frq" .equals(users.password)){ return true ; } else { return false ; } } } |
Mvp.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
public class Mvp { //MVP Precenter层 public Mvp(fff fff) { mFff = fff; } public Boolean isEmpty(User users){ if (TextUtils.isEmpty(users.username) || TextUtils.isEmpty(users.password)){ return false ; } else { return true ; } } public void isLogin( final User users){ new Thread(){ @Override public void run() { UserLogin login = new UserLogin(); boolean b = login.login(users); if (b){ mFff.success(); } else { mFff.doil(); } } }.start(); } public interface fff{ void success(); void doil(); } private fff mFff; } =========================================== public class Precenter { public Precenter(fff fff) { mFff = fff; } public void As(String urlString){ new AsyncTask<String, Void, ArrayList<FirstBean.ResultBean>>() { @Override protected ArrayList<FirstBean.ResultBean> doInBackground(String... strings) { String s = new HttpUrl().toString(strings[ 0 ]); //调用外部类 FirstBean firstBean = new Gson().fromJson(s, FirstBean. class ); //gson解析 if (firstBean!= null ){ return (ArrayList<FirstBean.ResultBean>) firstBean.getResult(); } return null ; } @Override protected void onPostExecute(ArrayList<FirstBean.ResultBean> resultBeans) { super .onPostExecute(resultBeans); if (resultBeans!= null ){ mFff.success(resultBeans); } else { mFff.bai(); } } }.execute(urlString); } public interface fff{ void success(ArrayList<FirstBean.ResultBean> resultBeans); void bai(); }; private fff mFff; } |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/FanRQ_/article/details/83892888