Android登录代码MVP架构详解

时间:2021-05-19

登录代码MVP架构的具体实现,分享给大家。

MainActivity.java

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

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

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;}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章