zoukankan      html  css  js  c++  java
  • android mvp

    package lhh.com.mymvp;

    import android.net.Uri;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.ImageView;

    import com.bumptech.glide.Glide;

    import butterknife.BindView;
    import butterknife.ButterKnife;
    import butterknife.OnClick;
    import lhh.com.mymvp.model.Customer;
    import lhh.com.mymvp.mvppersenterimpl.InfoLoadPresenterImpl;
    import lhh.com.mymvp.mvppresenter.InfoLoadPresenter;
    import lhh.com.mymvp.mvpview.InfoLoadView;

    public class MainActivity extends AppCompatActivity implements InfoLoadView {

    @BindView(R.id.username)
    EditText username;

    @BindView(R.id.jobs)
    EditText jobs;

    @BindView(R.id.phone)
    EditText phone;

    @BindView(R.id.portrait)
    ImageView portrait;

    @BindView(R.id.request)
    Button request;

    InfoLoadPresenter infoLoadPresenter;

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

    ButterKnife.bind(this);

    infoLoadPresenter = new InfoLoadPresenterImpl(this);

    }

    @OnClick(R.id.request)
    public void OnRequest()
    {
    infoLoadPresenter.infoLoad();

    }


    @Override
    public void infoLoadStart() {

    username.setEnabled(false);
    jobs.setEnabled(false);
    phone.setEnabled(false);

    request.setEnabled(false);

    }

    @Override
    public void infoLoadSuccess(Customer customer) {

    username.setEnabled(true);
    jobs.setEnabled(true);
    phone.setEnabled(true);

    request.setEnabled(true);

    username.setText(customer.getUsername());
    jobs.setText(customer.getJobs());
    phone.setText(customer.getPhone());

    Glide.with(this)
    .load("https://italker-ne.oss-cn-hongkong.aliyuncs.com/test/changzeyamei.jpg")
    .asBitmap()
    .centerCrop()
    .into(portrait);
    }

    }
    ---------------------------
    package lhh.com.mymvp;

    import android.app.Application;

    import com.google.gson.Gson;

    public class App extends Application {

    private static final Gson gson = new Gson();

    public App(){}

    public static Gson getGson()
    {
    return gson;
    }

    }
    ----------------------------
    package lhh.com.mymvp.model;

    public class Customer {

    private int id;
    private String username;
    private String jobs;
    private String phone;

    public int getId() {
    return id;
    }

    public void setId(int id) {
    this.id = id;
    }

    public String getUsername() {
    return username;
    }

    public void setUsername(String username) {
    this.username = username;
    }

    public String getJobs() {
    return jobs;
    }

    public void setJobs(String jobs) {
    this.jobs = jobs;
    }

    public String getPhone() {
    return phone;
    }

    public void setPhone(String phone) {
    this.phone = phone;
    }

    }
    ------------------------------------
    package lhh.com.mymvp.mvppersenterimpl;


    import android.annotation.SuppressLint;
    import android.os.Handler;
    import android.os.Message;
    import android.util.Log;

    import com.google.gson.Gson;

    import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.URL;

    import lhh.com.mymvp.App;
    import lhh.com.mymvp.model.Customer;
    import lhh.com.mymvp.mvppresenter.InfoLoadPresenter;
    import lhh.com.mymvp.mvpview.InfoLoadView;

    public class InfoLoadPresenterImpl implements InfoLoadPresenter {

    private InfoLoadView ilv;
    private Handler handler;

    @SuppressLint("HandlerLeak") //需要解决 todo
    @Override
    public void infoLoad() {
    ilv.infoLoadStart();

    //在新开的线程执行model加载操作
    handler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
    switch (msg.what)
    {
    case 1:
    ilv.infoLoadSuccess((Customer) msg.obj);
    break;
    }

    }
    };

    new Thread(new Runnable() {
    @Override
    public void run() {
    //模拟网络操作
    // try {
    // Thread.sleep(1000);
    // } catch (InterruptedException e) {
    // e.printStackTrace();
    // }

    StringBuilder body = new StringBuilder();
    String str;

    try {
    URL url = new URL("http://192.168.3.27:8080/ssm2/customer/1234");
    HttpURLConnection urlconn = (HttpURLConnection) url.openConnection();
    urlconn.setRequestMethod("GET");
    urlconn.setConnectTimeout(3 * 1000);
    int code = urlconn.getResponseCode();
    if (code==200){
    InputStream in = urlconn.getInputStream();
    InputStreamReader isr = new InputStreamReader(in,"utf-8");
    BufferedReader br = new BufferedReader(isr);

    while((str = br.readLine()) != null)
    {
    body.append(str);
    }

    Log.e("helloworld", body.toString());
    }
    } catch (Exception e) {
    e.printStackTrace();
    }

    Message message = new Message();

    Gson gson = App.getGson();
    Customer customer = gson.fromJson(body.toString(),Customer.class);

    message.what = 1;
    message.obj = customer;

    handler.sendMessage(message);

    }
    }).start();

    }



    @SuppressWarnings("unused")
    public InfoLoadPresenterImpl() {
    }

    public InfoLoadPresenterImpl(InfoLoadView ilv) {
    this.ilv = ilv;
    }

    @SuppressWarnings("unused")
    public InfoLoadView getIlv() {
    return ilv;
    }

    @SuppressWarnings("unused")
    public void setIlv(InfoLoadView ilv) {
    this.ilv = ilv;
    }
    }


    ------------------------------------
    package lhh.com.mymvp.mvppresenter;

    public interface InfoLoadPresenter {

    public void infoLoad();

    }


    -----------------------------------
    package lhh.com.mymvp.mvpview;

    import lhh.com.mymvp.model.Customer;

    public interface InfoLoadView {

    public void infoLoadStart();
    public void infoLoadSuccess(Customer customer);

    }
    ----------------------------------
    <?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=".MainActivity">

    <EditText
    android:id="@+id/username"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textSize="18dp"
    android:hint="username"
    />
    <EditText
    android:id="@+id/jobs"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textSize="18dp"
    android:hint="jobs"
    />

    <EditText
    android:id="@+id/phone"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textSize="18dp"
    android:hint="phone"
    />

    <FrameLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
    android:id="@+id/portrait"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:src="@color/colorPrimaryDark" />

    <Button
    android:id="@+id/request"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="right"
    android:layout_marginTop="5dp"
    android:layout_marginRight="20dp"
    android:text="请求信息"
    />

    </FrameLayout>


    </LinearLayout>
     
     
     




  • 相关阅读:
    2018年最新整理ios APP审核被拒的常见原因
    在线一键生成安卓证书keystore文件
    iOS证书的类型功能和申请介绍
    【2018】ios app真机调试到上架App Store完整教程
    预防SQL注入
    Python模块——HashLib(摘要算法)与base64
    Python加密与解密
    PostgreSQL常用命令
    二级子目录(后台目录)设置二级域名
    积累
  • 原文地址:https://www.cnblogs.com/l-h-h/p/10319997.html
Copyright © 2011-2022 走看看