MVP登录注册

登录页面

<?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, "失败---");
            }
        });
    }
}



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
校园悬赏任务平台对字典管理、论坛管理、任务资讯任务资讯公告管理、接取用户管理、任务管理、任务咨询管理、任务收藏管理、任务评价管理、任务订单管理、发布用户管理、管理员管理等进行集中化处理。经过前面自己查阅的网络知识,加上自己在学校课堂上学习的知识,决定开发系统选择小程序模式这种高效率的模式完成系统功能开发。这种模式让操作员基于浏览器的方式进行网站访问,采用的主流的Java语言这种面向对象的语言进行校园悬赏任务平台程序的开发,在数据库的选择上面,选择功能强大的Mysql数据库进行数据的存放操作。校园悬赏任务平台的开发让用户查看任务信息变得容易,让管理员高效管理任务信息。 校园悬赏任务平台具有管理员角色,用户角色,这几个操作权限。 校园悬赏任务平台针对管理员设置的功能有:添加并管理各种类型信息,管理用户账户信息,管理任务信息,管理任务资讯公告信息等内容。 校园悬赏任务平台针对用户设置的功能有:查看并修改个人信息,查看任务信息,查看任务资讯公告信息等内容。 系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。项目管理页面提供的功能操作有:查看任务,删除任务操作,新增任务操作,修改任务操作。任务资讯公告信息管理页面提供的功能操作有:新增任务资讯公告,修改任务资讯公告,删除任务资讯公告操作。任务资讯公告类型管理页面显示所有任务资讯公告类型,在此页面既可以让管理员添加新的任务资讯公告信息类型,也能对已有的任务资讯公告类型信息执行编辑更新,失效的任务资讯公告类型信息也能让管理员快速删除。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值