MVP接口回调登录

来源:互联网 发布:大津算法 opencv 编辑:程序博客网 时间:2024/06/10 20:24

权限

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


xml布局

<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.bwie.asus.login.MainActivity">    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_marginTop="30dp"        android:orientation="horizontal">        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_marginLeft="60dp"            android:text="用户名"            android:textSize="20sp" />        <EditText            android:id="@+id/username"            android:layout_width="200dp"            android:layout_height="wrap_content" />    </LinearLayout>    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_marginTop="30dp"        android:orientation="horizontal">        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_marginLeft="60dp"            android:text="密    码"            android:textSize="20sp" />        <EditText            android:id="@+id/password"            android:layout_width="200dp"            android:layout_height="wrap_content" />    </LinearLayout>    <Button        android:id="@+id/button"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center"        android:layout_marginTop="30dp"        android:text="登录" /></LinearLayout>

MainActivity类

<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.bwie.asus.login.MainActivity">    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_marginTop="30dp"        android:orientation="horizontal">        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_marginLeft="60dp"            android:text="用户名"            android:textSize="20sp" />        <EditText            android:id="@+id/username"            android:layout_width="200dp"            android:layout_height="wrap_content" />    </LinearLayout>    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_marginTop="30dp"        android:orientation="horizontal">        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_marginLeft="60dp"            android:text="密    码"            android:textSize="20sp" />        <EditText            android:id="@+id/password"            android:layout_width="200dp"            android:layout_height="wrap_content" />    </LinearLayout>    <Button        android:id="@+id/button"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center"        android:layout_marginTop="30dp"        android:text="登录" /></LinearLayout>

Login类

package com.bwie.asus.login;/** * Created by ASUS on 2017/10/8. */public interface Login {    public void name();    public void pwd();    public void loginsuccess(String result);}

Model类

package com.bwie.asus.login;import java.io.IOException;import okhttp3.Call;import okhttp3.Callback;import okhttp3.OkHttpClient;import okhttp3.Request;import okhttp3.Response;/** * Created by ASUS on 2017/10/8. */public class Model {    interface ModelList{        public void loginsuccess(String result);    }    public void setLogin(String username, String password, final ModelList modelList){        OkHttpClient client = new OkHttpClient();        Request request = new Request.Builder().url("http://qhb.2dyt.com/Bwei/login?username=muhanxi&password=111&postkey=1503d").build();        Call call = client.newCall(request);        call.enqueue(new Callback() {            @Override            public void onFailure(Call call, IOException e) {            }            @Override            public void onResponse(Call call, Response response) throws IOException {                String result = response.body().string();                modelList.loginsuccess(result);            }        });    }}

Presenter类

package com.bwie.asus.login;import android.text.TextUtils;/** * Created by ASUS on 2017/10/8. */public class Presenter {    private Login login;    private Model model;    public Presenter(Login login) {        this.login = login;        this.model = new Model();    }    public void setLogin(String username,String password){        if (TextUtils.isEmpty(username)){            login.name();            return;        }        if (TextUtils.isEmpty(password)){            login.pwd();            return;        }        model.setLogin(username, password, new Model.ModelList() {            @Override            public void loginsuccess(String result) {                login.loginsuccess(result);            }        });    }}