概述
登录代码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; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持靠谱客。
最后
以上就是刻苦小土豆为你收集整理的Android登录代码MVP架构详解的全部内容,希望文章能够帮你解决Android登录代码MVP架构详解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复