淘宝注册登录

依赖:


annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
compile 'com.android.support:recyclerview-v7:26.1.0'
//注意版本
compile 'com.squareup.retrofit2:retrofit:2.0.1'
// Okhttp库
compile 'com.squareup.okhttp3:okhttp:3.1.2'
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
// Retrofit库
implementation 'com.squareup.retrofit2:retrofit:2.4.0'
compile 'com.squareup.retrofit2:converter-gson:2.4.0'
compile 'com.squareup.retrofit2:adapter-rxjava2:2.4.0'
// rxjava+rxandroid+retrofit2+okhttp
implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
implementation 'io.reactivex.rxjava2:rxjava:2.1.12'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.google.code.gson:gson:2.2.4'
compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'
compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
compile 'org.greenrobot:eventbus:3.0.0'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.facebook.fresco:fresco:0.12.0'


loginBean:

public class Loginbean {


        /**
         * appkey : c946bd788a382809
         * appsecret : C738A026EEDD178A5A5F7946EB17C803
         * createtime : 2018-04-29T10:19:40
         * mobile : 17611525516
         * password : 8F669074CAF5513351A2DE5CC22AC04C
         * token : ACA7FC85CBA7EFF22A0FD66F64CA98C2
         * uid : 14179
         * username : 17611525516
         */

        private String appkey;
        private String appsecret;
        private String createtime;
        private String mobile;
        private String password;
        private String token;
        private int uid;
        private String username;

        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 String getMobile() {
            return mobile;
        }

        public void setMobile(String mobile) {
            this.mobile = mobile;
        }

        public String getPassword() {
            return password;
        }

        public void setPassword(String password) {
            this.password = password;
        }

        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 String getUsername() {
            return username;
        }

        public void setUsername(String username) {
            this.username = username;
        }
    }
 
ApiService:
public interface ApiService {

    @GET("user/login")
    Observable<MessageBean<Loginbean>> getlogin(@Query("mobile")String mobile, @Query("password")String password);

    @GET("user/reg")
    Observable<MessageBean> getzc(@Query("mobile")String mobile, @Query("password")String password);


}
ServiceURL:
public class ServiceURL {
    public static final String BASE_URL="https://www.zhaoapi.cn/";
}

HttpUtils

public class HttpUtils {
    private static volatile HttpUtils instance;
    private final OkHttpClient client;
    private final HttpLoggingInterceptor interceptor;
    private  Retrofit retrofit;

    private HttpUtils(){
        //日志拦截器
        interceptor = new HttpLoggingInterceptor();
        interceptor.setLevel(HttpLoggingInterceptor.Level.BASIC);
        client = new OkHttpClient.Builder()
                .addInterceptor(interceptor)
                .build();

        retrofit = new Retrofit.Builder()
                .baseUrl(ServiceURL.BASE_URL)
                .client(client)
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .addConverterFactory(GsonConverterFactory.create())
                .build();
    }
    public static HttpUtils getInstance(){

        if(instance==null){
            synchronized (HttpUtils.class){
                if(instance==null){
                    instance = new HttpUtils();
                }
            }
        }
        return instance ; }
        public ApiService getService(){

        return retrofit.create(ApiService.class);
        }
}
 
 
IPresenter:

public interface IPresenter<T> {
    void OnReceive(T t);
}
 
IView:
public interface IView<T> {
    void OnSuccess(T t);
}

LoginModel:

public class LoginModel {
    IPresenter iPresenter;
    public LoginModel(IPresenter iPresenter){
        this.iPresenter=iPresenter;
    }
    public void getData(String mobile,String password){
       HttpUtils.getInstance().getService()
                .getlogin(mobile, password)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<MessageBean<Loginbean>>() {
                    @Override
                    public void onSubscribe(Disposable d) {

                    }

                    @Override
                    public void onNext(MessageBean<Loginbean> loginbeanMessageBean) {

                        iPresenter.OnReceive(loginbeanMessageBean);
                    }

                    @Override
                    public void onError(Throwable e) {

                    }

                    @Override
                    public void onComplete() {

                    }
                });
    }
}

ZcModel:
public class ZcModel {
    IPresenter iPresenter;
    public ZcModel(IPresenter iPresenter){
        this.iPresenter=iPresenter;
    }
    public void getData(String mobile, String password, final IPresenter iPresenter){
       HttpUtils.getInstance().getService()
                .getzc(mobile, password)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<MessageBean>() {
                    @Override
                    public void onSubscribe(Disposable d) {

                    }

                    @Override
                    public void onNext(MessageBean messageBean) {
                        iPresenter.OnReceive(messageBean);
                    }



                    @Override
                    public void onError(Throwable e) {

                    }

                    @Override
                    public void onComplete() {

                    }
                });
    }
}


Loginpresenter :
 
public class Loginpresenter implements IPresenter<MessageBean<Loginbean>> {



    Context context;
    IView iView;
    private final LoginModel loginModel1;

    public Loginpresenter(Context context,IView iView){

        this.context=context;
        this.iView=iView;
        loginModel1 = new LoginModel(this);
    }

    public void getData(String mobile,String password){
        if(!TextUtils.isEmpty(mobile)&&!TextUtils.isEmpty(password)){
            loginModel1.getData(mobile,password);
        }else{
            Toast.makeText(context,"手机密码不能为空",Toast.LENGTH_SHORT).show();
        }
    }


    @Override
    public void OnReceive(MessageBean<Loginbean> loginbeanMessageBean) {
        String code = loginbeanMessageBean.getCode();
        if(code.equals("0")){
            iView.OnSuccess(loginbeanMessageBean);
        }else{
            Toast.makeText(context,loginbeanMessageBean.getMsg(),Toast.LENGTH_SHORT).show();
        }
    }
}

Zcpresenter :
public class Zcpresenter implements IPresenter<MessageBean> {

    LoginModel loginModel;
    Context context;
    IView iView;
    ZcModel zcModel;
   public Zcpresenter(Context context,IView iView){
       this.context=context;
       this.iView=iView;
        zcModel = new ZcModel(this);

   }
    public  void getData(String mobile,String password,String passwordTwo, String mile){
      if(!TextUtils.isEmpty(mobile)&&!TextUtils.isEmpty(password)&&!TextUtils.isEmpty(passwordTwo)&&!TextUtils.isEmpty(mile)){
          if(password.equals(passwordTwo)){
          }else {
              Toast.makeText(context, "两次密码不一致", Toast.LENGTH_SHORT).show();
          }
          zcModel.getData(mobile,password,this);
      }else {
          //如果是空值,则吐司
          Toast.makeText(context, "信息不能为空", Toast.LENGTH_SHORT).show();
      }

    }
    @Override
    public void OnReceive(MessageBean zcbeanMessageBean) {
        String code = zcbeanMessageBean.getCode();
        if(code.equals("0")){
            iView.OnSuccess(zcbeanMessageBean);

        }else {
            //注册失败,吐司
            Toast.makeText(context, zcbeanMessageBean.getMsg(), Toast.LENGTH_SHORT).show();
        }
    }
}

MainActivity:

public class MainActivity extends AppCompatActivity implements IView<MessageBean<Loginbean>> {

    @BindView(R.id.imageone)
    ImageView imageone;
    @BindView(R.id.user)
    EditText user;
    @BindView(R.id.pass)
    EditText pass;
    @BindView(R.id.wjmm)
    TextView wjmm;
    @BindView(R.id.zc)
    TextView zc;
    @BindView(R.id.dl)
    Button dl;
    private String username;
    private String password;
    Loginpresenter loginpresenter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        loginpresenter = new Loginpresenter(this, this);



    }

    @Override
    public void OnSuccess(MessageBean<Loginbean> loginbeanMessageBean) {
        Intent intent = new Intent(MainActivity.this, Main2Activity.class);
        startActivity(intent);
    }

    @OnClick({R.id.wjmm, R.id.zc, R.id.dl})
    public void onViewClicked(View view) {
        switch (view.getId()) {
            case R.id.wjmm:


                break;
            case R.id.zc:
                Intent intent = new Intent(MainActivity.this, Main3Activity.class);
                startActivity(intent);
                break;
            case R.id.dl:
                username = user.getText().toString();
                password = pass.getText().toString();
                loginpresenter.getData(username,password);
                break;
        }
    }
}

Main3Activity
public class Main3Activity extends AppCompatActivity implements IView<MessageBean> {

    @BindView(R.id.re_return)
    Button reReturn;
    @BindView(R.id.re_mobile)
    EditText reMobile;
    @BindView(R.id.re_password)
    EditText rePassword;
    @BindView(R.id.re_password_two)
    EditText rePasswordTwo;
    @BindView(R.id.regist_mile)
    EditText registMile;
    @BindView(R.id.re_but)
    Button reBut;
    Zcpresenter zcpresenter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main3);
        ButterKnife.bind(this);
        zcpresenter = new Zcpresenter(this, this);
    }

    @OnClick(R.id.re_but)
    public void onViewClicked() {
        //得到控件上的值用户名,密码,邮箱
        String mobile = reMobile.getText().toString();
        String password = rePassword.getText().toString();
        String passwordTwo = rePasswordTwo.getText().toString();
        String mile = registMile.getText().toString();
        //调用p层netRegistUser方法
        zcpresenter.getData(mobile,password,passwordTwo,mile);
    }

    @Override
    public void OnSuccess(MessageBean messageBean) {
        Toast.makeText(this, "注册成功后跳到登录页面", Toast.LENGTH_SHORT).show();
        try {
            Thread.sleep(3333);
            //当前activity销毁
            finish();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }}
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值