简单登录 MVP
来源:互联网 发布:淘宝直播预告已过期 编辑:程序博客网 时间:2024/06/05 08:04
//请求工具类
package com.example.okhttp.http;import android.util.Log;import java.io.IOException;import java.util.Map;import okhttp3.Call;import okhttp3.Callback;import okhttp3.OkHttpClient;import okhttp3.Request;import okhttp3.Response;public class OkHttpUtils { private static final String TAG = "OkHttpUtils"; //单例模式 private static volatile OkHttpUtils instance; private final OkHttpClient client; private OkHttpUtils(){ //初始化出来 client = new OkHttpClient(); } public static OkHttpUtils getInstance(){ if (instance==null){ synchronized (OkHttpUtils.class){ if (null==instance){ instance=new OkHttpUtils(); } } } return instance; } //定义,方法 public void get(String url, Map<String,String> map, final ResultCallBack resultCallBack){ //拼接 StringBuffer sb = new StringBuffer(); sb.append(url).append("?"); for (Map.Entry<String,String> entry:map.entrySet()){ sb.append(entry.getKey()) .append("=") .append(entry.getValue()) .append("&"); } sb.deleteCharAt(sb.lastIndexOf("&")); Log.i(TAG,"URL"+sb); Request request=new Request.Builder() .get() .url(sb.toString()) .build(); Call call = client.newCall(request); call.enqueue(new Callback() { @Override//请求失败的回调方法 public void onFailure(Call call, IOException e) { resultCallBack.onFailed(e.getMessage()); } @Override//请求成功的回调方法 public void onResponse(Call call, Response response) throws IOException { //需要我们自己的 String request = response.body().string(); resultCallBack.onSuccess(request); } }); }}
//m层创建的接口
package com.example.okhttp.http;public interface ResultCallBack { void onSuccess(String message); void onFailed(String error);}
//MainActivity View层
package com.example.okhttp;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 com.example.okhttp.callback.IView;import com.example.okhttp.persenter.LoginPresenter;public class MainActivity extends AppCompatActivity implements View.OnClickListener,IView { private static final String TAG = "MainActivity"; private EditText etUserName; private EditText etPassword; private Button btnLogin; private LoginPresenter persenter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); etUserName =(EditText)findViewById(R.id.et_username); etPassword =(EditText)findViewById(R.id.et_password); btnLogin =(Button)findViewById(R.id.btn_login); //pceng 对象 persenter = new LoginPresenter(); persenter.attachView(this); btnLogin.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.btn_login: String username=etUserName.getText().toString().trim(); String password=etPassword.getText().toString().trim(); persenter.login(username,password); break; } } //ivaiew的方法接口 @Override public void success(String message) { Log.i(TAG,"success"+message); } @Override public void failed(String message) { Log.i(TAG,"failed"+message); }}
//View层的 接口
package com.example.okhttp.callback;public interface IView { void success(String message); void failed (String message);}
//presener层的过渡层
package com.example.okhttp.persenter;import com.example.okhttp.callback.IView;import com.example.okhttp.http.OkHttpUtils;import com.example.okhttp.http.ResultCallBack;import java.util.HashMap;import java.util.Map;/** * Created by on 2017/11/7. */public class LoginPresenter { private IView iv; public void attachView(IView iv){ this.iv=iv; } //登录的方法 public void login(String username,String password){ //封装参数 Map<String,String> map=new HashMap<>(); map.put("mobile",username); map.put("password",password); OkHttpUtils.getInstance().get("http://120.27.23.105/user/login", map, new ResultCallBack() { @Override public void onSuccess(String message) { iv.success(message); } @Override public void onFailed(String error) { iv.failed(error); } }); }}
阅读全文
0 0
- MVP的简单登录
- MVP的简单登录
- MVP简单登录实现
- 简单登录 MVP
- MVP简单的实现登录
- 简单实现mvp模式登录
- 简单的用MVP实现登录界面
- Android MVP模式的简单登录
- MVP 一个简单的登录+判断
- mvp的基本登录(简单实现)
- Mvp登录
- mvp登录
- MVP登录
- MVP模式的简单介绍跟简单实现登录功能
- Android MVP模式理解(附简单登录模块例子)
- android+使用mvp做一个简单的登录
- 使用MVP模式实现简单的登录功能
- 简单的一个利用MVP做的登录
- OKhttp模版
- JAVA中字符串比较equals()和equalsIgnoreCase()的区别
- shader基础教程
- LINQ 查询
- drawable与mipmap的区别(android资源文件放置位置)
- 简单登录 MVP
- 面向对象程序设计上机练习二(函数模板)
- Linux如何修改文件权限
- 使用TCP协议连续传输大量数据时,是否会丢包,应如何避免
- 1046
- Luogu 3807(Lucas定理)
- js的跨域问题
- three.js 文字无法显示问题的解决
- 用MFC创建一个ping的小程序