mvp登录界面
public class MainActivity extends AppCompatActivity implements LoginView {
private EditText edit1,edit2;
private Button btn1,btn2;
private LoginPresenter mLoginPresenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit1 = findViewById(R.id.edit1);
edit2 = findViewById(R.id.edit2);
btn1 = findViewById(R.id.btn1);
btn2 = findViewById(R.id.btn2);
mLoginPresenter = new LoginPresenter(this);
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String tel = MainActivity.this.edit1.getText().toString().trim();
String pwd = MainActivity.this.edit2.getText().toString().trim();
mLoginPresenter.login(UrlUtil.LOGIN,tel+UrlUtil.LOGINEND,pwd);
}
});
}
@Override
public void onSucess(String result) {
Toast.makeText(MainActivity.this, result, Toast.LENGTH_SHORT).show();
}
@Override
public void onFailer(String failer) {
Toast.makeText(MainActivity.this, failer, Toast.LENGTH_SHORT).show();
}
@Override
public void onKong() {
Toast.makeText(MainActivity.this, "不能为空", Toast.LENGTH_SHORT).show();
}
@Override
public void show() {
}
@Override
public void hide() {
}
}
定义网络接口
public interface UrlUtil {
public String LOGIN=“http://www.zhaoapi.cn/user/login?mobile=”;
public String LOGINEND="&password=";
}
网络请求
public class UrlConnection {
public void login(final String url, final CallBack callBack){
new AsyncTask<String, Void, String>() {
@Override
protected String doInBackground(String… strings) {
try {
URL url1 = new URL(url);
HttpURLConnection urlConnection = (HttpURLConnection) url1.openConnection();
urlConnection.setConnectTimeout(3000);
int responseCode = urlConnection.getResponseCode();
if(responseCode == 200){
InputStream inputStream = urlConnection.getInputStream();
InputStreamReader reader = new InputStreamReader(inputStream);
String string = CharStreams.toString(reader);
return string;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
callBack.getData(s);
}
}.execute();
}
public interface CallBack{
void getData(String s);
}
}
bean类
public class Login {
private String msg;
private String code;
private DataBean data;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public DataBean getData() {
return data;
}
public void setData(DataBean data) {
this.data = data;
}
public static class DataBean {
/**
* age : null
* appkey : d618f5bb63be3a33
* appsecret : 2289D4055C3A98DEFB19F19A407811D4
* createtime : 2018-11-09T14:42:45
* email : null
* fans : null
* follow : null
* gender : null
* icon : null
* latitude : null
* longitude : null
* mobile : 15010746215
* money : null
* nickname : null
* password : 8F669074CAF5513351A2DE5CC22AC04C
* praiseNum : null
* token : 91215D0826019F504078EAA759377F39
* uid : 22111
* userId : null
* username : 15010746215
*/
private Object age;
private String appkey;
private String appsecret;
private String createtime;
private Object email;
private Object fans;
private Object follow;
private Object gender;
private Object icon;
private Object latitude;
private Object longitude;
private String mobile;
private Object money;
private Object nickname;
private String password;
private Object praiseNum;
private String token;
private int uid;
private Object userId;
private String username;
public Object getAge() {
return age;
}
public void setAge(Object age) {
this.age = age;
}
public String getAppkey() {
return appkey;
}
public void setAppkey(String appkey) {
this.appkey = appkey;
}
public String getAppsecret() {
return appsecret;
}
public void setAppsecret(String appsecret) {
this.appsecret = appsecret;
}
public String getCreatetime() {
return createtime;
}
public void setCreatetime(String createtime) {
this.createtime = createtime;
}
public Object getEmail() {
return email;
}
public void setEmail(Object email) {
this.email = email;
}
public Object getFans() {
return fans;
}
public void setFans(Object fans) {
this.fans = fans;
}
public Object getFollow() {
return follow;
}
public void setFollow(Object follow) {
this.follow = follow;
}
public Object getGender() {
return gender;
}
public void setGender(Object gender) {
this.gender = gender;
}
public Object getIcon() {
return icon;
}
public void setIcon(Object icon) {
this.icon = icon;
}
public Object getLatitude() {
return latitude;
}
public void setLatitude(Object latitude) {
this.latitude = latitude;
}
public Object getLongitude() {
return longitude;
}
public void setLongitude(Object longitude) {
this.longitude = longitude;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public Object getMoney() {
return money;
}
public void setMoney(Object money) {
this.money = money;
}
public Object getNickname() {
return nickname;
}
public void setNickname(Object nickname) {
this.nickname = nickname;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Object getPraiseNum() {
return praiseNum;
}
public void setPraiseNum(Object praiseNum) {
this.praiseNum = praiseNum;
}
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public Object getUserId() {
return userId;
}
public void setUserId(Object userId) {
this.userId = userId;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
}
presenter层
public class LoginPresenter {
private LoginView mLoginView;
private LoginModel mLoginModel;
public LoginPresenter(LoginView loginView) {
mLoginView = loginView;
mLoginModel = new LoginModel();
}
public void login(String url,String tel,String pwd){
if(TextUtils.isEmpty(url)||TextUtils.isEmpty(pwd)){
mLoginView.onKong();
}
mLoginView.show();
mLoginModel.login(url, tel, pwd, new UrlConnection.CallBack() {
@Override
public void getData(String s) {
if(s.equals("登录成功")){
mLoginView.onSucess("登录成功");
}
else if (s.equals("天呢!密码错误")){
mLoginView.onFailer("密码或者账号错误");
}
else if (s.equals("请输入正确的手机号码")){
mLoginView.onFailer("请输入正确的手机号码");
}
else if (s.equals("密码格式有问题,不能少于6位数")){
mLoginView.onFailer("密码格式有问题,不能少于6位数");
}
}
});
}
}
view层
public interface LoginView {
void onSucess(String result);
void onFailer(String failer);
void onKong();
void show();
void hide();
}
model层
public class LoginModel {
public void login(String url, String tel, String pwd, final UrlConnection.CallBack callBack){
UrlConnection urlConnection = new UrlConnection();
urlConnection.login(url + tel + pwd, new UrlConnection.CallBack() {
@Override
public void getData(String s) {
Gson gson = new Gson();
Login login = gson.fromJson(s, Login.class);
String msg = login.getMsg();
callBack.getData(msg);
}
});
}
public interface CallBack{
void getData(String s);
}
}
注册
if (s.equals(“天呢!用户已注册”)){
mLoginView.onFailer(“天呢!用户已注册”);
}
else if (s.equals(“请输入正确的手机号码”)){
mLoginView.onFailer(“请输入正确的手机号码”);
}
else if (s.equals(“密码格式有问题,不能少于6位数”)){
mLoginView.onFailer(“密码格式有问题,不能少于6位数”);
}
else if (s.equals(“注册成功”)){
mLoginView.onSucess(“注册成功”);
}