Android登录代码MVP架构详解
登录代码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>() {
@Override
protected ArrayList 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.getResult();
}
return null;
}
@Override
protected void onPostExecute(ArrayList resultBeans) {
super.onPostExecute(resultBeans);
if (resultBeans!=null){
mFff.success(resultBeans);
}else {
mFff.bai();
}
}
}.execute(urlString);
}
public interface fff{
void success(ArrayList resultBeans);
void bai();
};
private fff mFff;
} 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持创新互联。
新闻名称:Android登录代码MVP架构详解
本文来源:http://jxruijie.cn/article/jdocpi.html
