登录注册

//所需要的依赖

compile 'com.squareup.retrofit2:retrofit:2.0.1'
compile 'com.squareup.retrofit2:converter-gson:2.0.1'
compile 'com.squareup.retrofit2:adapter-rxjava:2.0.1'
compile 'io.reactivex:rxandroid:1.1.0'
compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'
//权限

<uses-permission android:name="android.permission.INTERNET"/>

==================================Bean
public class Bean {
    /**
     * msg : 登录成功
     * code : 0
     * data : {"age":null,"appkey":"4c17d9250210436d","appsecret":"7C64369D117C7B71AD3F164D6069DF89","createtime":"2018-01-10T11:13:51","email":null,"fans":null,"follow":null,"gender":null,"icon":null,"latitude":null,"longitude":null,"mobile":"13522483483","money":null,"nickname":null,"password":"8F669074CAF5513351A2DE5CC22AC04C","praiseNum":null,"token":"30D75B8E7ED2E8A1807D75692DC1F635","uid":11364,"userId":null,"username":"13522483483"}
     */

    public String msg;
    public String code;
    public Data.DataBean data;

    public static class DataBean {
        /**
         * age : null
         * appkey : 4c17d9250210436d
         * appsecret : 7C64369D117C7B71AD3F164D6069DF89
         * createtime : 2018-01-10T11:13:51
         * email : null
         * fans : null
         * follow : null
         * gender : null
         * icon : null
         * latitude : null
         * longitude : null
         * mobile : 13522483483
         * money : null
         * nickname : null
         * password : 8F669074CAF5513351A2DE5CC22AC04C
         * praiseNum : null
         * token : 30D75B8E7ED2E8A1807D75692DC1F635
         * uid : 11364
         * userId : null
         * username : 13522483483
         */

        public Object age;
        public String appkey;
        public String appsecret;
        public String createtime;
        public Object email;
        public Object fans;
        public Object follow;
        public Object gender;
        public Object icon;
        public Object latitude;
        public Object longitude;
        public String mobile;
        public Object money;
        public Object nickname;
        public String password;
        public Object praiseNum;
        public String token;
        public int uid;
        public Object userId;
        public String username;
    }
}
=============================Data
public class Data {

    /**
     * msg : 获取用户信息成功
     * code : 0
     * data : {"age":null,"appkey":"80d9a01dba3aada5","appsecret":"17CDCE48FBB3D9CEA6A1599300A7CBC8","createtime":"2017-11-17T13:41:35","email":null,"fans":0,"follow":0,"gender":null,"icon":null,"latitude":null,"longitude":null,"mobile":"13509090909","money":null,"nickname":null,"password":"94E3FA7E637B0803B4034D7B1B165B83","praiseNum":null,"token":"B4AD76A4EBC068AF6376DCC03C5EFAF4","uid":1135,"userId":null,"username":"13509090909"}
     */

    public String msg;
    public String code;
    public DataBean data;

    public static class DataBean {
        /**
         * age : null
         * appkey : 80d9a01dba3aada5
         * appsecret : 17CDCE48FBB3D9CEA6A1599300A7CBC8
         * createtime : 2017-11-17T13:41:35
         * email : null
         * fans : 0
         * follow : 0
         * gender : null
         * icon : null
         * latitude : null
         * longitude : null
         * mobile : 13509090909
         * money : null
         * nickname : null
         * password : 94E3FA7E637B0803B4034D7B1B165B83
         * praiseNum : null
         * token : B4AD76A4EBC068AF6376DCC03C5EFAF4
         * uid : 1135
         * userId : null
         * username : 13509090909
         */

        public Object age;
        public String appkey;
        public String appsecret;
        public String createtime;
        public Object email;
        public int fans;
        public int follow;
        public Object gender;
        public Object icon;
        public Object latitude;
        public Object longitude;
        public String mobile;
        public Object money;
        public Object nickname;
        public String password;
        public Object praiseNum;
        public String token;
        public int uid;
        public Object userId;
        public String username;
    }
}
========================================WL
public class WL {
    /**
     * msg : 注册成功
     * code : 0
     */

    public String msg;
    public String code;
}
===============================MyApi
public class MyApi {
    public final static String url="http://120.27.23.105/user/";

}
======================================MyService
public interface MyService {
    @GET("reg")
    Observable<WL> getWL(@Query("mobile")String mobile, @Query("password")String password);
    @GET("login")
    Observable<Bean> getBean(@Query("mobile")String mobile, @Query("password")String password);
    @GET("getUserInfo")
    Observable<Data> getData(@Query("uid")String uid);

}
=================================M层

==================================ModelPort
public interface ModelPort {
    void getUser(String phone, String pass);
}
========================================Model2Port
public interface Model2Port {
    void get(String phone, String pass);
}
===========================================ModelToos
public class ModelToos implements ModelPort {
    OnFinish onFinish;

    public ModelToos(OnFinish onFinish) {
        this.onFinish = onFinish;
    }

    @Override
    public void getUser(String phone,String pass) {
        Retrofit retrofit=new Retrofit.Builder()
                .baseUrl(MyApi.url)
                .addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                .build();
        MyService service=retrofit.create(MyService.class);
        Observable<WL> wl = service.getWL(phone, pass);
                 wl.subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<WL>() {
                    @Override
                    public void onCompleted() {

                    }

                    @Override
                    public void onError(Throwable e) {

                    }

                    @Override
                    public void onNext(WL wl) {
                      onFinish.finish(wl);
                    }
                });
    }
    public interface OnFinish{
        void finish(WL wl);
    }
}
========================================Model2Toos
public class Model2Toos implements Model2Port {
    private Onfinish2 onfinish2;

    public Model2Toos(Onfinish2 onfinish2) {
        this.onfinish2 = onfinish2;
    }
    @Override
    public void get(String phone, String pass) {
        Retrofit retrofit=new Retrofit.Builder()
                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                .addConverterFactory(GsonConverterFactory.create())
                .baseUrl(MyApi.url)
                .build();
        MyService service=retrofit.create(MyService.class);
        Observable<Bean> data=service.getBean(phone,pass);
        data.subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<Bean>() {
                    @Override
                    public void onCompleted() {

                    }

                    @Override
                    public void onError(Throwable e) {

                    }

                    @Override
                    public void onNext(Bean bean) {
                     onfinish2.finish(bean);
                    }
                });
    }
    public interface Onfinish2{
        void finish(Bean bean);
    }
}
====================================V层

======================================ViewPort
public interface ViewPort {
    void show(WL wl);
}
========================================VIew2Port
public interface VIew2Port {
    void show(Bean bean);
}
=======================================P层
================================================PrensentToos
public class PrensentToos implements ModelToos.OnFinish {
    ModelToos toos;
    ViewPort port;

    public PrensentToos(ViewPort port) {
        this.port = port;
        toos=new ModelToos(this);
    }
public void getData(String phone,String pass){
        toos.getUser(phone,pass);
}
    @Override
    public void finish(WL wl) {
        Log.d("+++++++++++++",wl.msg);
        port.show(wl);
    }
}
=========================================Present2Toos
public class Present2Toos implements Model2Toos.Onfinish2 {
    VIew2Port port2;
    Model2Toos toos2;

    public Present2Toos(VIew2Port port2) {
        this.port2 = port2;
        toos2=new Model2Toos(this);
    }
public void getUser(String name,String pass){
        toos2.get(name,pass);
}
    @Override
    public void finish(Bean bean) {
        port2.show(bean);
    }
}
======================================Activity
========================================登录MainActivity
public class MainActivity extends AppCompatActivity implements View.OnClickListener,VIew2Port {

    private EditText mPhone;
    private EditText mPass;
    private Button mDc;
    private Button mZc;
    private Present2Toos toos2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
    }

    private void initView() {
        mPhone = (EditText) findViewById(R.id.phone);
        mPass = (EditText) findViewById(R.id.pass);
        mDc = (Button) findViewById(R.id.dc);
        mDc.setOnClickListener(this);
        mZc = (Button) findViewById(R.id.zc);
        mZc.setOnClickListener(this);
        toos2=new Present2Toos(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.dc:
                // TODO 18/01/10
                String name=mPhone.getText().toString().trim();
                String pass=mPass.getText().toString().trim();
                if (name!=null){
                    if (pass!=null){
                        //13522481234
                        toos2.getUser(name,pass);
                    }else {
                        Toast.makeText(this,"请输入密码",Toast.LENGTH_LONG).show();
                    }
                }else {
                    Toast.makeText(this, "请输入账号", Toast.LENGTH_LONG).show();
                }
                break;
            case R.id.zc:
                // TODO 18/01/10
                startActivity(new Intent(this,ZhuceActivity.class));
                break;
            default:
                break;
        }
    }

    @Override
    public void show(Bean bean) {
        if (bean.code.equals("0")) {
            Toast.makeText(this, bean.msg, Toast.LENGTH_LONG).show();
            Intent intent = new Intent(MainActivity.this, ShangpinActivity.class);
            intent.putExtra("uid", bean.data.uid + "");
            startActivity(intent);
        }
    }
}

===============================注册Activity
public class ZhuceActivity extends AppCompatActivity implements ViewPort, View.OnClickListener{

    private EditText mPhone;
    private EditText mPass;
    private Button mZc2;
    private PrensentToos toos;
    private TextView tv;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_zhuce);
        initView();
    }

    private void initView() {
        mPhone = (EditText) findViewById(R.id.phone);
        mPass = (EditText) findViewById(R.id.pass);
        mZc2 = (Button) findViewById(R.id.zc2);
        tv = (TextView) findViewById(R.id.tv);
        mZc2.setOnClickListener(this);
        toos=new PrensentToos(this);

    }

    @Override
    public void show(WL wl) {
        if(wl.code.equals("0"))
        {
            startActivity(new Intent(ZhuceActivity.this,MainActivity.class));
            Toast.makeText(this,wl.msg,
                    Toast.LENGTH_LONG).show();
            finish();
        }
        else
        {
            Toast.makeText(this,wl.msg,
                    Toast.LENGTH_LONG).show();
        }
        tv.setText(wl.msg);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.zc2:
                // TODO 18/01/10
                String name=mPhone.getText().toString().trim();
                String pass=mPass.getText().toString().trim();
                if (name!=null){
                    if (pass!=null){
                        toos.getData(name,pass);
                    }else {
                        Toast.makeText(this,"请输入密码",Toast.LENGTH_LONG).show();
                    }
                }else {
                    Toast.makeText(this, "请输入账号", Toast.LENGTH_LONG).show();
                }
                break;
            default:
                break;
        }
    }

}

====================================登录的布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    android:orientation="vertical"
    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.example.administrator.chenrong.dlactivity.MainActivity">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/phone"
        android:hint="请输入用户名"/>
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/pass"
        android:hint="请输入密码"/>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="登陆"
            android:id="@+id/dc"/>
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="注册"
            android:id="@+id/zc"/>
    </LinearLayout>
</LinearLayout>

=================================注册的布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    android:orientation="vertical"
    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.example.administrator.chenrong.dlactivity.ZhuceActivity">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/phone"
        android:hint="请输入用户名"/>
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/pass"
        android:hint="请输入密码"/>

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="立即注册"
        android:id="@+id/zc2"/>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/tv"/>
</LinearLayout>




















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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值