MVP 一个简单的登录+判断
来源:互联网 发布:ubuntu 修改ip 编辑:程序博客网 时间:2024/05/18 01:23
activity_main
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:orientation="vertical" android:layout_height="match_parent"> <EditText android:id="@+id/zh" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入账号" /> <EditText android:id="@+id/mm" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入密码 " /> <Button android:id="@+id/dl" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="登录" /></LinearLayout>
MainActivity.java
package com.mvp;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;import butterknife.BindView;import butterknife.ButterKnife;import butterknife.OnClick;public class MainActivity extends AppCompatActivity implements LoginView{ @BindView(R.id.zh) EditText zh; @BindView(R.id.mm) EditText mm; @BindView(R.id.dl) Button dl; private LoginPresenter presenter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); presenter = new LoginPresenter(this); } @OnClick(R.id.dl) public void onViewClicked() { //点击登录,调用LoginPresenter中的login方法 presenter.login(zh.getText().toString(),mm.getText().toString()); } @Override public void zhEmpty() { Toast.makeText(MainActivity.this,"账号不能为空",Toast.LENGTH_SHORT).show(); } @Override public void mmEmpty() { Toast.makeText(MainActivity.this,"密码不能为空",Toast.LENGTH_SHORT).show(); } @Override public void loginSuccess(Object object) { runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this,"登录成功",Toast.LENGTH_SHORT).show(); } }); } @Override public void loginFailed(int code) { //Toast.makeText(MainActivity.this,"登录失败",Toast.LENGTH_SHORT).show(); runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this,"登录失败",Toast.LENGTH_SHORT).show(); } }); } //页面关闭时调用 @Override protected void onDestroy() { super.onDestroy(); //调用LoginPresenter 里的detach方法,清空数据 presenter.detach(); }}
LoginView.java
package com.mvp;/** * Created by lenovo on 2017/11/02. */public interface LoginView { // 手机号码为空 public void zhEmpty(); // 密码为空 public void mmEmpty(); // 登陆成功 public void loginSuccess(Object object); // 登陆失败 public void loginFailed(int code);}LoginModel.java
package com.mvp;import java.io.IOException;import okhttp3.Call;import okhttp3.Callback;import okhttp3.FormBody;import okhttp3.OkHttpClient;import okhttp3.Request;import okhttp3.RequestBody;import okhttp3.Response;/** * Created by lenovo on 2017/11/02. */public class LoginModel { public void login(String zh, String mm, final ModelCallBack callBack){ OkHttpClient okHttpClient = new OkHttpClient(); RequestBody body = new FormBody.Builder().add("pscid","39").add("page","1").build(); Request request = new Request.Builder().url("http://120.27.23.105/product/getProducts").post(body).build(); okHttpClient.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { callBack.failed(1); } @Override public void onResponse(Call call, Response response) throws IOException { String result = response.body().string(); callBack.success(result); } }); } interface ModelCallBack{ public void success(String data); public void failed(int code); }}LoginPresenter.java
package com.mvp;import android.text.TextUtils;/** * Created by lenovo on 2017/11/02. */public class LoginPresenter { private LoginView loginView; private LoginModel loginModel; public LoginPresenter(LoginView loginView){ this.loginView = loginView; loginModel = new LoginModel(); } //清除数据 public void detach(){ this.loginView = null; } public void login(String zh,String mm){ if (TextUtils.isEmpty(zh)){ loginView.zhEmpty(); return; } if (TextUtils.isEmpty(mm)){ loginView.mmEmpty(); return; } loginModel.login(zh,mm, new LoginModel.ModelCallBack() { @Override public void success(String data) { loginView.loginSuccess(data); } @Override public void failed(int code) { loginView.loginFailed(code); } }); }}
阅读全文
0 0
- MVP 一个简单的登录+判断
- MVP的简单登录
- MVP的简单登录
- 简单的一个利用MVP做的登录
- android+使用mvp做一个简单的登录
- MVP简单的实现登录
- 一个登录的MVP例子
- 一个简单的MVP模式
- 一个简单的MVP Demo
- 简单的用MVP实现登录界面
- Android MVP模式的简单登录
- mvp的基本登录(简单实现)
- 这是一个使用mvp模式实现模拟用户登录的简单Demo。
- MVP简单登录实现
- 简单登录 MVP
- MVP模式的简单介绍跟简单实现登录功能
- 简单的登录验证判断
- PHP简单的登录判断
- 文章标题
- VS2010帮助文档安装方法
- 统计学习方法 7-支持向量机
- Can not deserialize instance of java.lang.String out of START_OBJECT token
- html表单相关知识
- MVP 一个简单的登录+判断
- jvm之对象
- c进阶代码练习
- Storm概念、原理详解及其应用(一)BaseStorm
- [python]利用Python生成xml文件
- PX4源码初学习(px4_simple_app.c)
- 选择排序
- poj3345——bribing FIPA
- C++智能指针简单剖析