登陆

 
 
HttpConfig
//登陆
public static String login_url = "https://www.zhaoapi.cn/user/login";
//注册
public static String reg_url = "https://www.zhaoapi.cn/user/reg";
 
 

model 包

ILoginModelListener

package com.daydayup.day14_gouwuche.model;

/**
 * Created by AIlt on 2018/5/3.
 */

public interface ILoginModelListener {
    //获取数据成功
    void showJsonSuccess(String json);
    //获取数据失败
    void showJsonError(String error);

}

ILoginRegModel
package com.daydayup.day14_gouwuche.model;

import java.util.Map;

/**
 * Created by AIlt on 2018/5/3.
 */

public interface ILoginRegModel {
    //登陆
    void formLogin(String url, Map<String,String> parmas,ILoginModelListener iLoginModelListener);

}
LoginRegModelImpl
package com.daydayup.day14_gouwuche.model;

import com.daydayup.day14_gouwuche.http.HttpUtils;
import com.daydayup.day14_gouwuche.http.OkLoadListener;

import java.util.Map;

/**
 * Created by AIlt on 2018/5/3.
 */

public class LoginRegModelImpl implements ILoginRegModel  {
    //登陆
    @Override
    public void formLogin(String url, Map<String, String> params, final ILoginModelListener iLoginModelListener) {
        //请求网络
        HttpUtils httpUtils = HttpUtils.getHttpUtils();
        httpUtils.okPost(url,params);
        httpUtils.setOkLoadListener(new OkLoadListener() {
            @Override
            public void okLoadSuccess(String json) {
                iLoginModelListener.showJsonSuccess(json);
            }

            @Override
            public void okLoadError(String error) {
                iLoginModelListener.showJsonError(error);
            }
        });
    }
}

presenter  包
ILoginPrsenter

package com.daydayup.day14_gouwuche.presenter;

import com.daydayup.day14_gouwuche.model.ILoginRegModel;
import com.daydayup.day14_gouwuche.view.ILoginView;

/**
 * Created by AIlt on 2018/5/3.
 */

public interface ILoginPrsenter {
    //登陆
    void getLoginToView(ILoginRegModel iLoginRegModel, ILoginView iLoginView);
}
LoginPresenterImpl
package com.daydayup.day14_gouwuche.presenter;

import com.daydayup.day14_gouwuche.http.HttpConfig;
import com.daydayup.day14_gouwuche.model.ILoginModelListener;
import com.daydayup.day14_gouwuche.model.ILoginRegModel;
import com.daydayup.day14_gouwuche.model.LoginBean;
import com.daydayup.day14_gouwuche.view.ILoginView;
import com.google.gson.Gson;

import java.util.HashMap;
import java.util.Map;

/**
 * Created by AIlt on 2018/5/3.
 */

public class LoginPresenterImpl implements ILoginPrsenter {
    //登陆
    @Override
    public void getLoginToView(ILoginRegModel iLoginRegModel, final ILoginView iLoginView) {
        Map<String, String> params = new HashMap<>();
        params.put("mobile", iLoginView.getMobile());
        params.put("password", iLoginView.getPassword());
        iLoginRegModel.formLogin(HttpConfig.login_url, params, new ILoginModelListener() {
            @Override
            public void showJsonSuccess(String json) {
                Gson gson = new Gson();
                LoginBean loginBean = gson.fromJson(json, LoginBean.class);
                String code = loginBean.getCode();
                if (code.equals("0")) {//当code为0时说明登陆成功
                    iLoginView.showLoginSuccess(json);
                }else {//为登陆失败
                    iLoginView.showLoginError(loginBean.getMsg());
                }
            }

            @Override
            public void showJsonError(String error) {
                //登陆失败
                iLoginView.showLoginError(error);
            }
        });
    }
}
 
 
view 包

ILoginView


package com.daydayup.day14_gouwuche.view;

/**
 * Created by AIlt on 2018/5/3.
 */

public interface ILoginView {
    void showLoginSuccess(String json);//登陆成功
    void showLoginError(String error);//登录失败

    //获取输入的mobile
    String getMobile();
    //获取输入的password
    String getPassword();
}



LoginActivity


package com.daydayup.day14_gouwuche.view;

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

import com.daydayup.day14_gouwuche.R;
import com.daydayup.day14_gouwuche.model.LoginRegModelImpl;
import com.daydayup.day14_gouwuche.presenter.LoginPresenterImpl;

public class LoginActivity extends AppCompatActivity implements View.OnClickListener , ILoginView{
    private static final String TAG = "LoginActivity";
    private EditText mobile;
    private EditText password;
    private Button login;
    private Button reg;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        initView();
        initDatas();
    }


    private void initView() {
        mobile = findViewById(R.id.login_mobile);
        password = findViewById(R.id.login_password);
        login = findViewById(R.id.login);
        reg = findViewById(R.id.reg);

        login.setOnClickListener(this);
        reg.setOnClickListener(this);
    }
    private void initDatas() {

    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.login:
                LoginPresenterImpl loginPresenter = new LoginPresenterImpl();
                loginPresenter.getLoginToView(new LoginRegModelImpl(),this);

                break;
            case R.id.reg:

                break;
        }
    }
    //登陆成功回掉
    @Override
    public void showLoginSuccess(String json) {
        Toast.makeText(this, "登陆成功"+json, Toast.LENGTH_SHORT).show();
        Log.d(TAG, "showLoginSuccess: 0+"+json);
        Intent intent = new Intent(LoginActivity.this,MainActivity.class);
               startActivity(intent);

    }
    //登陆失败回掉
    @Override
    public void showLoginError(String error) {
        Toast.makeText(this, "登陆失败"+error, Toast.LENGTH_SHORT).show();
        Log.d(TAG, "showLoginError: "+error);
    }
    //发送用户输入的mobile
    @Override
    public String getMobile() {
        return mobile.getText().toString();
    }
    //获取用户输入的passsword
    @Override
    public String getPassword() {
        return password.getText().toString();
    }
}
 
 
 
 
布局

activity_login


<?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.day14_gouwuche.view.LoginActivity">

    <EditText
        android:id="@+id/login_mobile"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <EditText
        android:id="@+id/login_password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <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>





猜你喜欢

转载自blog.csdn.net/qq_41212790/article/details/80185802