网络请求 登录注册

<TextView
    android:id="@+id/my_login"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_marginLeft="114dp"
    android:text="登录/注册>"
    android:textColor="@color/colorwhite"
    android:textSize="16sp" />

页面1点击到登录+ 最后的退出

package com.example.asus.jddemozhangjiangxia.ui.fragment;


import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.example.asus.jddemozhangjiangxia.R;
import com.example.asus.jddemozhangjiangxia.data.bean.InfoBean;
import com.example.asus.jddemozhangjiangxia.di.presenter.PresenterImpl;
import com.example.asus.jddemozhangjiangxia.di.presenter.contract.IContract;
import com.example.asus.jddemozhangjiangxia.ui.activtiy.BackActivity;
import com.example.asus.jddemozhangjiangxia.ui.activtiy.LoginActivity;
import com.example.asus.jddemozhangjiangxia.ui.activtiy.TouActivity;
import com.example.asus.jddemozhangjiangxia.ui.activtiy.XiangQingActivity;
import com.example.asus.jddemozhangjiangxia.ui.adapter.OneAdapterbbb;

import java.util.List;

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import butterknife.Unbinder;

import static android.support.constraint.Constraints.TAG;


public class fiveFragment extends Fragment implements IContract.IView {
    @BindView(R.id.my_img_tou)
    ImageView myImgTou;
    @BindView(R.id.my_login)
    TextView myLogin;
    @BindView(R.id.my_tuijian_recycler)
    RecyclerView myTuijianRecycler;
    Unbinder unbinder;
    private PresenterImpl presenter;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_five, container, false);
        unbinder = ButterKnife.bind(this, view);


        presenter = new PresenterImpl();
        presenter.attData(this);
        presenter.infoData();
        return view;
    }

    @Override
    public void onResume() {
        super.onResume();
        init();
    }

    private void init() {
        SharedPreferences sp = getActivity().getSharedPreferences("userInfo", 0);
        String uid = sp.getString("uid", "0");
        Log.i("aaa", "init: "+uid);
        String username = sp.getString("username", "|");
        Log.e("TAG1", "" + username);
        if (username.equals("|")) {
            Toast.makeText(getActivity(), "未登录", Toast.LENGTH_SHORT).show();
            myLogin.setText("登录/注册");
        } else {
            Toast.makeText(getActivity(), "已登录", Toast.LENGTH_SHORT).show();

            myLogin.setText(username);
        }
    }

    @Override
    public void onDestroyView() {
        super.onDestroyView();
        unbinder.unbind();
    }

    @OnClick({R.id.my_img_tou, R.id.my_login})
    public void onViewClicked(View view) {
        switch (view.getId()) {
            case R.id.my_img_tou:
                Intent  intent2=new Intent(getActivity(),TouActivity.class);
                startActivity(intent2);

                break;
            case R.id.my_login:

                SharedPreferences sp = getActivity().getSharedPreferences("userInfo", 0);
                String username = sp.getString("username", "|");
                if (username.equals("|")) {
                    Intent intent = new Intent(getActivity(), LoginActivity.class);
                    startActivity(intent);
                }else{
                    Intent intent = new Intent(getActivity(), BackActivity.class);
                    startActivity(intent);
                }
                break;
        }
    }

    @Override
    public void showData(InfoBean msg) {
        InfoBean.DataBean data = msg.getData();
        InfoBean.DataBean.TuijianBean tuijian = data.getTuijian();
        final List<InfoBean.DataBean.TuijianBean.ListBeanX> tlist = tuijian.getList();

        GridLayoutManager gridLayoutManager3 = new GridLayoutManager(getContext(), 2, GridLayoutManager.VERTICAL, false);
        myTuijianRecycler.setLayoutManager(gridLayoutManager3);

        OneAdapterbbb oneAdapterbbb = new OneAdapterbbb(getContext(), tlist);
        myTuijianRecycler.setAdapter(oneAdapterbbb);
        oneAdapterbbb.setOnitmeclickLentener(new OneAdapterbbb.onitmeclickLentener() {
            @Override
            public void onitmeclick(int itemCount) {
                int pid = tlist.get(itemCount).getPid();
                Intent intent1 = new Intent(getActivity(), XiangQingActivity.class);
                intent1.putExtra("pid", pid);
                startActivity(intent1);
            }
        });
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        presenter.deleteData(this);


    }

}

登录布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="16dp"
    android:orientation="vertical">
    <LinearLayout
        android:layout_weight="7"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/jd"
            android:layout_gravity="center"
            android:layout_marginTop="40dp"
            />

        <EditText
            android:id="@+id/login_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="用户名/邮箱/手机号"/>
        <EditText
            android:id="@+id/login_pwd"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="请输入密码"/>
        <Button
            android:layout_marginTop="40dp"
            android:id="@+id/login_button"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:background="@drawable/login_shape"
            android:textColor="#ffffff"
            android:textSize="20dp"
            android:text="登录"
            />
        <TextView
            android:id="@+id/register"
            android:layout_width="match_parent"
            android:padding="10dp"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="新用户注册"
            />
    </LinearLayout>

    <LinearLayout
        android:layout_weight="6"
        android:layout_width="match_parent"
        android:orientation="vertical"
        android:layout_height="0dp">
        <TextView
            android:layout_width="match_parent"
            android:gravity="center"
            android:layout_height="wrap_content"
            android:text="其他登录方式"/>
        <LinearLayout
            android:layout_width="match_parent"
            android:gravity="center"
            android:layout_height="wrap_content">
            <TextView
                android:id="@+id/weixin_login"
                android:layout_weight="1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:text="微信登录"
                android:gravity="center"
                android:drawableTop="@mipmap/weixin"
                />
            <TextView
                android:id="@+id/qq_login"
                android:layout_weight="1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:text="QQ登录"
                android:gravity="center"
                android:drawableTop="@mipmap/mqq"
                />
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

登录页面

 

package com.example.asus.jddemozhangjiangxia.ui.activtiy;

import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.example.asus.jddemozhangjiangxia.R;
import com.example.asus.jddemozhangjiangxia.data.bean.LoginBean;
import com.example.asus.jddemozhangjiangxia.di.presenter.PresenterLogin;
import com.example.asus.jddemozhangjiangxia.di.presenter.contract.IContractLogin;
import com.example.asus.jddemozhangjiangxia.ui.fragment.fiveFragment;

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;

public class LoginActivity extends AppCompatActivity implements IContractLogin.IViewLogin {

    @BindView(R.id.login_name)
    EditText loginName;
    @BindView(R.id.login_pwd)
    EditText loginPwd;
    @BindView(R.id.login_button)
    Button loginButton;
    @BindView(R.id.register)
    TextView register;
    @BindView(R.id.weixin_login)
    TextView weixinLogin;
    @BindView(R.id.qq_login)
    TextView qqLogin;
    private IContractLogin.IPresenterLogin<IContractLogin.IViewLogin> LoginIPresenterLogin;
    private String logname;
    private String logpwd;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        ButterKnife.bind(this);
        LoginIPresenterLogin = new PresenterLogin();
        LoginIPresenterLogin.attData(this);
    }

    @OnClick({R.id.login_button, R.id.register, R.id.weixin_login, R.id.qq_login})
    public void onViewClicked(View view) {
        switch (view.getId()) {
            case R.id.login_button:
                logname = loginName.getText().toString();
                logpwd = loginPwd.getText().toString();
                LoginIPresenterLogin.infoData(logname, logpwd);
                break;
            case R.id.register:
                Intent intent = new Intent(LoginActivity.this, RagActivtiy.class);
                startActivityForResult(intent, 110);
                break;
            case R.id.weixin_login:
                break;
            case R.id.qq_login:
                break;
        }
    }

    @SuppressLint("CommitPrefEdits")
    @Override
    public void showData(LoginBean msg) {
        String msg1 = msg.getMsg();
        String code = msg.getCode();
        if (code.equals("0")) {
            SharedPreferences sp = getSharedPreferences("userInfo", Context.MODE_PRIVATE);
            SharedPreferences.Editor edit = sp.edit();
            String uid = String.valueOf(msg.getData().getUid());
            String token = msg.getData().getToken();
            String username = msg.getData().getUsername();
            Log.e("TAG","username"+username);
            edit.putString("token",token);
            edit.putString("uid", uid);
            edit.putString("username",username);
            edit.commit();
            Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show();

            finish();
        }
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 110 && resultCode == 123) {
            String name = data.getStringExtra("name");
            String pwd = data.getStringExtra("pwd");
            loginName.setText(name);
            loginPwd.setText(pwd);
        }
    }
}

登录p层

package com.example.asus.jddemozhangjiangxia.di.presenter;

import com.example.asus.jddemozhangjiangxia.data.bean.LoginBean;
import com.example.asus.jddemozhangjiangxia.di.model.ModelLogin;
import com.example.asus.jddemozhangjiangxia.di.presenter.contract.IContractLogin;

import java.lang.ref.WeakReference;

public class PresenterLogin implements IContractLogin.IPresenterLogin<IContractLogin.IViewLogin> {
    IContractLogin.IViewLogin iViewLogin;
    private IContractLogin.IModelLogin iModelLogin;
    private WeakReference<IContractLogin.IViewLogin> iViewLoginWeakReference;
    private WeakReference<IContractLogin.IModelLogin> iModelLoginWeakReference;

    @Override
    public void attData(IContractLogin.IViewLogin iViewLogin) {
        this.iViewLogin = iViewLogin;
        iModelLogin = new ModelLogin();
        iViewLoginWeakReference = new WeakReference<>(iViewLogin);
        iModelLoginWeakReference = new WeakReference<>(iModelLogin);
    }

    @Override
    public void deleteData(IContractLogin.IViewLogin iViewLogin) {
       iViewLoginWeakReference.clear();
       iModelLoginWeakReference.clear();
    }

    @Override
    public void infoData(String logname, String logpwd) {
          iModelLogin.requestData(logname, logpwd, new IContractLogin.IModelLogin.onCallBack() {
              @Override
              public void stringMsg(LoginBean Msg) {
                  iViewLogin.showData(Msg);
              }
          });
    }
}

登录m层

package com.example.asus.jddemozhangjiangxia.di.model;

import com.example.asus.jddemozhangjiangxia.data.bean.LoginBean;
import com.example.asus.jddemozhangjiangxia.data.http.OkHttpUtils;
import com.example.asus.jddemozhangjiangxia.di.presenter.contract.IContractLogin;


import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;

public class ModelLogin implements IContractLogin.IModelLogin {


    @Override
    public void requestData(String logname, String logpwd, final onCallBack onCallBack) {
        OkHttpUtils.getInstance().apiService.getlogin(logname, logpwd)
                .observeOn(AndroidSchedulers.mainThread())
                .subscribeOn(Schedulers.io())
                .subscribe(new Observer<LoginBean>() {
                    @Override
                    public void onSubscribe(Disposable d) {

                    }

                    @Override
                    public void onNext(LoginBean loginBean) {
                     onCallBack.stringMsg(loginBean);
                    }

                    @Override
                    public void onError(Throwable e) {

                    }

                    @Override
                    public void onComplete() {

                    }
                });
    }
}

注册主页面

package com.example.asus.jddemozhangjiangxia.ui.activtiy;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.example.asus.jddemozhangjiangxia.R;
import com.example.asus.jddemozhangjiangxia.data.bean.RagBean;
import com.example.asus.jddemozhangjiangxia.di.presenter.PresenterImpl;
import com.example.asus.jddemozhangjiangxia.di.presenter.PresenterRag;
import com.example.asus.jddemozhangjiangxia.di.presenter.contract.IContractRag;

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;

public class RagActivtiy extends AppCompatActivity implements IContractRag.IViewRag {

    @BindView(R.id.rag_name)
    EditText ragName;
    @BindView(R.id.rag_pwd)
    EditText ragPwd;
    @BindView(R.id.rag_button)
    Button ragButton;
    private IContractRag.IPresenterRag<IContractRag.IViewRag> iViewRagIPresenterRag;
    private String ragname;
    private String ragpwd;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_rag_activtiy);
        ButterKnife.bind(this);
        iViewRagIPresenterRag = new PresenterRag();
        iViewRagIPresenterRag.attData(this);

    }

    @OnClick({R.id.rag_button})
    public void onViewClicked(View view) {
        switch (view.getId()) {
            case R.id.rag_button:
                ragname = ragName.getText().toString();
                ragpwd = ragPwd.getText().toString();
                iViewRagIPresenterRag.infoData(ragname, ragpwd);
                break;
        }
    }

    @Override
    public void showData(RagBean msg) {
        String msgMsg = msg.getMsg();
        Toast.makeText(this, ""+msgMsg, Toast.LENGTH_SHORT).show();
        String code = msg.getCode();


        if (code.equals("0")){
            Intent intent = getIntent();
            intent.putExtra("name",ragname);
            intent.putExtra("pwd",ragpwd);
            setResult(123,intent);
            finish();
        }

    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        iViewRagIPresenterRag.deleteData(this);
    }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值