登录页面
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.daydayup.day10_zhoukao.view.MainActivity">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="登录"
android:textSize="25sp" />
<View
android:layout_width="match_parent"
android:layout_height="0.75dp"
android:background="#999999" />
<EditText
android:id="@+id/mobile"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="手机号" />
<EditText
android:id="@+id/pwd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="密码" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="登录" />
<Button
android:id="@+id/reg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="注册" />
</LinearLayout>
</LinearLayout>
注册
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.daydayup.day10_zhoukao.view.MainActivity">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="注册"
android:textSize="25sp" />
<View
android:layout_width="match_parent"
android:layout_height="0.75dp"
android:background="#999999" />
<EditText
android:id="@+id/mobile"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="手机号" />
<EditText
android:id="@+id/pwd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="密码" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="horizontal">
<Button
android:id="@+id/reg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="注册" />
</LinearLayout>
</LinearLayout>
注册bean
package com.daydayup.day10_zhoukao.model;
/**
* Created by gjl on 2018/4/20.
*/
public class RegBean {
/**
* msg : 天呢!用户已注册
* code : 1
* data : {}
*/
private String msg;
private String code;
private String 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 String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
}
登录bean
package com.daydayup.day10_zhoukao.model;
/**
* 登录的Bean
*/
public class UserBean {
/**
* msg : 登录成功
* code : 0
* data : {"age":null,"appkey":"1da9c47d431c043b","appsecret":"A804850E463E7E282E09E1AD112D9808","createtime":"2018-04-20T10:38:59","email":null,"fans":null,"follow":null,"gender":null,"icon":null,"latitude":null,"longitude":null,"mobile":"18611112222","money":null,"nickname":null,"password":"8F669074CAF5513351A2DE5CC22AC04C","praiseNum":null,"token":"A4A74B21D1D9E47AA217D6CDAB9A0CE5","uid":11196,"userId":null,"username":"18611112222"}
*/
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 : 1da9c47d431c043b
* appsecret : A804850E463E7E282E09E1AD112D9808
* createtime : 2018-04-20T10:38:59
* email : null
* fans : null
* follow : null
* gender : null
* icon : null
* latitude : null
* longitude : null
* mobile : 18611112222
* money : null
* nickname : null
* password : 8F669074CAF5513351A2DE5CC22AC04C
* praiseNum : null
* token : A4A74B21D1D9E47AA217D6CDAB9A0CE5
* uid : 11196
* userId : null
* username : 18611112222
*/
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;
}
}
}
Imainview
package com.daydayup.day10_zhoukao.view;
/**
* 登录view
*/
public interface IMainView {
//获手机号
String getMobile();
//获取密码
String getPassword();
//登录成功
void loginSuccess();
//登录失败
void loginError();
}
iregview
package com.daydayup.day10_zhoukao.view;
/**
* 注册view
*/
public interface IRegView {
//获手机号
String getMobile();
//获取密码
String getPassword();
//注册成功
void regSuccess();
//注册失败
void regError();
}
main
package com.daydayup.day10_zhoukao.view;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.daydayup.day10_zhoukao.R;
import com.daydayup.day10_zhoukao.model.ModelImpl;
import com.daydayup.day10_zhoukao.presenter.Presenter;
/**
* 登录页
*/
public class MainActivity extends AppCompatActivity implements IMainView, View.OnClickListener {
private EditText mobile;
private EditText password;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化界面
initViews();
}
private void initViews() {
mobile = findViewById(R.id.mobile);
password = findViewById(R.id.pwd);
Button login = findViewById(R.id.login);
Button reg = findViewById(R.id.reg);
login.setOnClickListener(this);
reg.setOnClickListener(this);
}
//手机号
@Override
public String getMobile() {
return mobile.getText().toString();
}
@Override
public String getPassword() {
return password.getText().toString();
}
@Override
public void loginSuccess() {
Toast.makeText(MainActivity.this, "成功---", Toast.LENGTH_SHORT).show();
startActivity(new Intent(MainActivity.this,GoodsListActivity.class));
}
@Override
public void loginError() {
Toast.makeText(MainActivity.this, "失败---请注册", Toast.LENGTH_SHORT).show();
}
//点击事件
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.login:
Presenter presenter = new Presenter();
presenter.loginPresenter(new ModelImpl(),this);
break;
case R.id.reg:
startActivity(new Intent(MainActivity.this,RegActivity.class));
break;
}
}
}
regactivity
package com.daydayup.day10_zhoukao.view;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.daydayup.day10_zhoukao.R;
import com.daydayup.day10_zhoukao.model.ModelImpl;
import com.daydayup.day10_zhoukao.presenter.Presenter;
public class RegActivity extends AppCompatActivity implements View.OnClickListener, IRegView {
private EditText mobile;
private EditText password;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_reg);
//初始化界面
initViews();
}
private void initViews() {
mobile = findViewById(R.id.mobile);
password = findViewById(R.id.pwd);
Button reg = findViewById(R.id.reg);
reg.setOnClickListener(this);
}
//点击事件
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.reg:
Presenter presenter = new Presenter();
presenter.regPresenter(new ModelImpl(), this);
break;
}
}
//获取手机号
@Override
public String getMobile() {
return mobile.getText().toString();
}
//密码
@Override
public String getPassword() {
return password.getText().toString();
}
//注册成功
@Override
public void regSuccess() {
Toast.makeText(RegActivity.this, "注册成功---", Toast.LENGTH_SHORT).show();
startActivity(new Intent(RegActivity.this, GoodsListActivity.class));
}
//注册失败
@Override
public void regError() {
Toast.makeText(RegActivity.this, "注册失败---", Toast.LENGTH_SHORT).show();
}
}
imodel
package com.daydayup.day10_zhoukao.model;
import java.util.Map;
/**
* Model
*/
public interface IModel {
// 登录
void login(String url, Map<String, String> params, LoginListener loginListener);
// 注册
void reg(String url, Map<String, String> params, RegListener regListener);
// 获取商品数据
void getGoodsListData(String url, Map<String, String> params, GoodsListListener goodsListListener);
}
imodelimpl
package com.daydayup.day10_zhoukao.model;
import android.util.Log;
import com.daydayup.day10_zhoukao.http.HttpUtils;
import com.daydayup.day10_zhoukao.http.OkLoadListener;
import com.google.gson.Gson;
import java.util.Map;
/**
* Created by gjl on 2018/4/20.
*/
public class ModelImpl implements IModel {
private static final String TAG = "ModelImpl----";
@Override
public void login(final String url, Map<String, String> params, final LoginListener loginListener) {
//
HttpUtils httpUtils = HttpUtils.getHttpUtils();
//调用post请求
httpUtils.okPost(url, params);
// 设置回调监听
httpUtils.setOkLoadListener(new OkLoadListener() {
@Override
public void okLoadSuccess(String json) {
Log.d(TAG, "okLoadSuccess: " + json);
//将数据传入p层
//解析json 如果code是0,成功,否则失败
Gson gson = new Gson();
UserBean userBean = gson.fromJson(json, UserBean.class);
if (userBean.getCode().equals("0")) {
loginListener.loginSuccess(json);
} else {
loginListener.loginError(json);
}
}
@Override
public void okLoadError(String error) {
loginListener.loginError(error);
}
});
}
//注册
@Override
public void reg(String url, Map<String, String> params, final RegListener regListener) {
HttpUtils httpUtils = HttpUtils.getHttpUtils();
httpUtils.okPost(url, params);//调用post请求
// 设置回调监听
httpUtils.setOkLoadListener(new OkLoadListener() {
@Override
public void okLoadSuccess(String json) {
Log.d(TAG, "okLoadSuccess: " + json);
//将数据传入p层
//解析json 如果code是0,成功,否则失败
Gson gson = new Gson();
RegBean userBean = gson.fromJson(json, RegBean.class);
if (userBean.getCode().equals("0")) {
regListener.regSuccess(json);
} else {
regListener.regError(json);
}
}
@Override
public void okLoadError(String error) {
regListener.regError(error);
}
});
}
// 获取商品数据
@Override
public void getGoodsListData(String url, Map<String, String> params, final GoodsListListener goodsListListener) {
HttpUtils httpUtils = HttpUtils.getHttpUtils();
httpUtils.okPost(url, params);//调用post请求
// 设置回调监听
httpUtils.setOkLoadListener(new OkLoadListener() {
@Override
public void okLoadSuccess(String json) {
Log.d(TAG, "okLoadSuccess: " + json);
//将数据传入p层
//解析json 如果code是0,成功,否则失败
Gson gson = new Gson();
GoosListBean goosListBean = gson.fromJson(json, GoosListBean.class);
if (goosListBean.getCode().equals("0")) {
goodsListListener.getDataSuccess(json);
} else {
goodsListListener.getDataError(json);
}
}
@Override
public void okLoadError(String error) {
goodsListListener.getDataError(error);
}
});
}
}
loglistener
package com.daydayup.day10_zhoukao.model;
/**
* Created by gjl on 2018/4/20.
*/
public interface LoginListener {
void loginSuccess(String json);
void loginError(String error);
}
reglistener
package com.daydayup.day10_zhoukao.model;
/**
* 注册的回调接口
*/
public interface RegListener {
void regSuccess(String json);
void regError(String error);
}
ipresenter
package com.daydayup.day10_zhoukao.presenter;
import com.daydayup.day10_zhoukao.model.IModel;
import com.daydayup.day10_zhoukao.view.IGoodsListView;
import com.daydayup.day10_zhoukao.view.IMainView;
import com.daydayup.day10_zhoukao.view.IRegView;
/**
* Created by gjl on 2018/4/20.
*/
public interface Ipresenter {
// 登录
void loginPresenter(IModel iModel, IMainView iMainView);
// 注册
void regPresenter(IModel iModel, IRegView iRegView);
// 显示数据
void showGoodsListToView(IModel iModel, IGoodsListView iGoodsListView);
}
ipresenterimpl
package com.daydayup.day10_zhoukao.presenter;
import android.util.Log;
import com.daydayup.day10_zhoukao.http.HttpConfig;
import com.daydayup.day10_zhoukao.model.GoodsListListener;
import com.daydayup.day10_zhoukao.model.GoosListBean;
import com.daydayup.day10_zhoukao.model.IModel;
import com.daydayup.day10_zhoukao.model.LoginListener;
import com.daydayup.day10_zhoukao.model.RegListener;
import com.daydayup.day10_zhoukao.view.IGoodsListView;
import com.daydayup.day10_zhoukao.view.IMainView;
import com.daydayup.day10_zhoukao.view.IRegView;
import com.google.gson.Gson;
import java.util.HashMap;
import java.util.Map;
/**
* Created by gjl on 2018/4/20.
*/
public class Presenter implements Ipresenter {
private static final String TAG = "Presenter-----";
//登录
@Override
public void loginPresenter(IModel iModel, final IMainView iMainView) {
//调用m请求数据
Map<String, String> map = new HashMap<>();
map.put("mobile", iMainView.getMobile());
map.put("password", iMainView.getPassword());
iModel.login(HttpConfig.login_url, map, new LoginListener() {
//根据回调结果,决定view的显示效果
@Override
public void loginSuccess(String json) {
iMainView.loginSuccess();
}
@Override
public void loginError(String error) {
iMainView.loginError();
}
});
}
//注册
@Override
public void regPresenter(IModel iModel, final IRegView iRegView) {
//调用m请求数据
Map<String, String> map = new HashMap<>();
map.put("mobile", iRegView.getMobile());
map.put("password", iRegView.getPassword());
iModel.reg(HttpConfig.reg_url, map, new RegListener() {
@Override
public void regSuccess(String json) {
iRegView.regSuccess();
}
@Override
public void regError(String error) {
iRegView.regError();
}
});
}
// 显示数据
@Override
public void showGoodsListToView(IModel iModel, final IGoodsListView iGoodsListView) {
Map<String, String> map = new HashMap<>();
map.put("keywords", "笔记本");
map.put("page", "1");
iModel.getGoodsListData(HttpConfig.goods_list_url, map, new GoodsListListener() {
@Override
public void getDataSuccess(String json) {
Gson gson = new Gson();
GoosListBean goosListBean = gson.fromJson(json, GoosListBean.class);
iGoodsListView.showGoodsList(goosListBean.getData());
}
@Override
public void getDataError(String error) {
Log.d(TAG, "失败---");
}
});
}
}