MVP实现登陆注册
来源:互联网 发布:linux 鼠标灵敏度太高 编辑:程序博客网 时间:2024/05/20 21:59
分包结构:
效果图:
登陆失败:
登陆成功:(跳转到一个新的activity)
OkhttpUtils工具类我其他的博客里面有,就不在这里过多展示了下面是博客地址:
http://blog.csdn.net/weixin_39779085/article/details/78600968
贴心吧。哈哈哈哈哈哈 哈
生成实体bean:
public class UserBean { private String msg; private String code; private DataEntity data; public static UserBean objectFromData(String str) { return new com.google.gson.Gson().fromJson(str, UserBean.class); } public void setMsg(String msg) { this.msg = msg; } public void setCode(String code) { this.code = code; } public void setData(DataEntity data) { this.data = data; } public String getMsg() { return msg; } public String getCode() { return code; } public DataEntity getData() { return data; } public static class DataEntity { private Object age; private String appkey; private String appsecret; private String createtime; private Object email; private Object gender; private Object icon; private String mobile; private Object money; private Object nickname; private String password; private String token; private int uid; private String username; public static DataEntity objectFromData(String str) { return new com.google.gson.Gson().fromJson(str, DataEntity.class); } public void setAge(Object age) { this.age = age; } public void setAppkey(String appkey) { this.appkey = appkey; } public void setAppsecret(String appsecret) { this.appsecret = appsecret; } public void setCreatetime(String createtime) { this.createtime = createtime; } public void setEmail(Object email) { this.email = email; } public void setGender(Object gender) { this.gender = gender; } public void setIcon(Object icon) { this.icon = icon; } public void setMobile(String mobile) { this.mobile = mobile; } public void setMoney(Object money) { this.money = money; } public void setNickname(Object nickname) { this.nickname = nickname; } public void setPassword(String password) { this.password = password; } public void setToken(String token) { this.token = token; } public void setUid(int uid) { this.uid = uid; } public void setUsername(String username) { this.username = username; } public Object getAge() { return age; } public String getAppkey() { return appkey; } public String getAppsecret() { return appsecret; } public String getCreatetime() { return createtime; } public Object getEmail() { return email; } public Object getGender() { return gender; } public Object getIcon() { return icon; } public String getMobile() { return mobile; } public Object getMoney() { return money; } public Object getNickname() { return nickname; } public String getPassword() { return password; } public String getToken() { return token; } public int getUid() { return uid; } public String getUsername() { return username; } }}
view层:
public interface ILoginView { void setName(String name); String getName(); void setPass(String pass); String getPass();}
model层:
接口:
public interface ILoginModel { void login(String name, String pass, Callback callback); void reg(String name, String pass, Callback callback);}
public class LoginModel implements ILoginModel { @Override public void login(String name, String pass, okhttp3.Callback callback) { OkHttpUtils.getInstance().doGet("http://120.27.23.105/user/login?mobile="+name+"&password="+pass, (okhttp3.Callback) callback); } @Override public void reg(String name, String pass, okhttp3.Callback callback) { }}
presenter层:
public class LoginPresenter { private Context context; private ILoginModel model; private ILoginView view; public LoginPresenter(Context context, ILoginView view) { this.context = context; this.view = view; model = new LoginModel(); } public void login(){ String name = view.getName(); String pass = view.getPass(); model.login(name, pass, new OnUiCallback() { @Override public void onFailed(Call call, IOException e) { } @Override public void onSuccess(String result) throws IOException { Gson gson = new Gson(); UserBean userBean = gson.fromJson(result, UserBean.class); String code = userBean.getCode(); Log.i("=========", "onSuccess: "+code); if(code.equals("0")){ Toast.makeText(context,"登录成功",Toast.LENGTH_SHORT).show(); Intent intent = new Intent(context, InfoActivity.class); context.startActivity(intent); }else{ Toast.makeText(context,"登录失败",Toast.LENGTH_SHORT).show(); } } }); }}
布局文件:
activity_main:
<?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.ccm.loginmvp.activity.MainActivity"> <TextView android:id="@+id/tv_login_return" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="返回" android:textSize="20sp" android:gravity="center"/> <EditText android:id="@+id/et_user_name" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="100dp" android:padding="20dp" android:hint="请输入账号"/> <EditText android:id="@+id/et_user_pwd" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入密码" android:layout_marginTop="10dp" android:padding="20dp" android:password="true"/> <Button android:id="@+id/btn_user_login" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="登陆" android:layout_marginTop="10dp" android:padding="20dp" android:textColor="#fff" android:textSize="20sp" android:background="@drawable/shape_login"/></LinearLayout>
activity_info:
<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout 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" tools:context="com.ccm.loginmvp.activity.InfoActivity"></android.support.constraint.ConstraintLayout>
MainActivity:
public class MainActivity extends AppCompatActivity implements ILoginView{ private EditText et_user_name, et_user_pwd; private TextView tv_login_return; private Button btn_user_login; private LoginPresenter presenter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); presenter = new LoginPresenter(this, this); btn_user_login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { presenter.login(); } }); } private void initView() { et_user_name = (EditText) findViewById(R.id.et_user_name); et_user_pwd = (EditText) findViewById(R.id.et_user_pwd); btn_user_login = (Button) findViewById(R.id.btn_user_login); } @Override public void setName(String name) { et_user_name.setText(name); } @Override public String getName() { return et_user_name.getText().toString(); } @Override public void setPass(String pass) { et_user_pwd.setText(pass); } @Override public String getPass() { return et_user_pwd.getText().toString(); }}
InfoActivity:
public class InfoActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_info); }}
阅读全文
0 0
- Mvp实现登陆注册
- MVP实现登陆注册
- MVP实现登陆注册
- MVP登陆注册
- MVP 实现登录注册
- Mvp实现登录注册
- MVP实现登录注册
- MVP+登陆注册RecyclerView显示数据
- MVP模式实现接口登陆
- 登陆注册如何实现
- okhttp3实现注册登陆
- 集合实现注册登陆
- 登陆注册实现流程
- MVP实现登录注册功能
- Andriod——MVP网络获取登陆注册
- android使用mvp模式实现登陆demo
- MVP的简单实现(本地登陆)
- 实现ios的登陆注册
- Datatables简单的使用
- springmvc接受多个同一对象
- 解决:Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ )
- 从Logistic回归到神经网络的一点感悟
- 【Scikit-Learn 中文文档】交叉分解
- MVP实现登陆注册
- Piggy-Bank
- 引用类型-Object()
- 【opencast】之一 介绍与代码下载
- React的入门
- CAS实现单点登录SSO执行原理探究(终于明白了)
- Mysql中的日期函数
- 3.2 语句概述
- 刷题笔记:C/C++专项练习2