用MVP框架网络获取数据实现登录功能

<?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"
tools:context=".MainActivity"
android:orientation="vertical">


<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:orientation="horizontal">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="用户名"/>

    <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:gravity="center"
    android:orientation="horizontal">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="密码"/>

    <EditText
        android:id="@+id/password"
        android:layout_width="200dp"
        android:layout_height="wrap_content"/>

</LinearLayout>

<Button
    android:id="@+id/login"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_marginTop="20dp"
    android:text="登录"
    />

view
package liyuanqi.bwie.com.mvplx01;

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

import liyuanqi.bwie.com.mvplx01.prasenter.UserLoginPrasenter;

public class MainActivity extends AppCompatActivity implements View.OnClickListener, UserLoginPrasenter.UserShuju {

private EditText username;
private EditText password;
private Button login;

UserLoginPrasenter userLoginPrasenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    initView();
     userLoginPrasenter = new UserLoginPrasenter(this);
}

private void initView() {
    username = (EditText) findViewById(R.id.username);
    password = (EditText) findViewById(R.id.password);
    login = (Button) findViewById(R.id.login);

    login.setOnClickListener(this);
}

@Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.login:
            submit();
            break;
    }
}

private void submit() {
    // validate
    String names = username.getText().toString().trim();
   String  pwds= password.getText().toString().trim();
    if (userLoginPrasenter.isnull(names,pwds)) {
        userLoginPrasenter.panduanjieguo();
    }else {
        Toast.makeText(this, "账号密码不能为空", Toast.LENGTH_SHORT).show();
    }


}

@Override
public void cg() {
    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
        }
    });
}

@Override
public void sb() {
    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            Toast.makeText(MainActivity.this, "账号或密码错误", Toast.LENGTH_SHORT).show();
        }
    });
}

}

Prasenter(接口回调)

package liyuanqi.bwie.com.mvplx01.prasenter;

import android.text.TextUtils;

import liyuanqi.bwie.com.mvplx01.model.User;
import liyuanqi.bwie.com.mvplx01.model.UserLoginData;

public class UserLoginPrasenter {
public UserLoginPrasenter(UserShuju userShuju) {
mUserShuju = userShuju;
}
User user = new User();
public Boolean isnull(String names, String pwds){

    user.name=names;
    user.pwd=pwds;

    if (TextUtils.isEmpty(user.name)) {


        return false;
    }
    if (TextUtils.isEmpty(user.pwd)){
        return false;
    }
    return true;


 }

public void panduanjieguo() {
    new Thread(new Runnable() {
        @Override
        public void run() {
            if (UserLoginData.pdjieguo(user)) {
                mUserShuju.cg();

            } else {
                mUserShuju.sb();
            }

        }
    }).start();


}

public interface UserShuju{
    void cg();
    void sb();
}
private UserShuju mUserShuju;

}

model

一个数据的暂时存放的类
package liyuanqi.bwie.com.mvplx01.model;
public class User {
public String name;
public String pwd;
}

package liyuanqi.bwie.com.mvplx01.model;

import com.google.gson.Gson;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;

获取网络数据
public class UserLoginData {

static JsonBean jsonBean;
public static boolean pdjieguo( User user) {
    String wz="http://www.xieast.com/api/news/news.php?type=top&page=1&tdsourcetag=s_pcqq_aiomsg";
    try {   URL url = new URL(wz);

        HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
        urlConnection.setRequestMethod("GET");
        urlConnection.setReadTimeout(5000);
        urlConnection.setConnectTimeout(5000);
        int code = urlConnection.getResponseCode();
        if (code==200){
            String jsonString=httpstring(urlConnection.getInputStream());
            jsonBean = new Gson().fromJson(jsonString, JsonBean.class);
        }
        List<JsonBean.DataBean> data = jsonBean.getData();
        for (int i=0;i<data.size();i++){
            if(data.get(i).getCategory().equals(user.name) && data.get(i).getAuthor_name().equals(user.pwd)){

                return true;
            }
        }

    } catch (IOException e) {
        e.printStackTrace();
    }
    return false;
}

private static String httpstring(InputStream inputStream) {
    StringBuilder builder = new StringBuilder();
    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
    try {
        for (String temp=reader.readLine();temp!=null;temp=reader.readLine()){
            builder.append(temp);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }finally {
        try {
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    return builder.toString();
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值