Mvp简单实现
来源:互联网 发布:网络溜溜球的意思 编辑:程序博客网 时间:2024/06/05 07:10
首先创建Model,Presenter类
Presenter类:
public class MainActivityPresenter { private LoginView loginView; private MainActivityModel mainActivityModel; public MainActivityPresenter(LoginView loginView) { this.loginView = loginView; this.mainActivityModel = new MainActivityModel(); } public void login(String username, String password) { if (TextUtils.isEmpty(username)) { loginView.usernameNull(); return; } if (TextUtils.isEmpty(password)) { loginView.passwordNull(); return; } mainActivityModel.login(username, password, new MainActivityModel.ModelListener() { @Override public void loginSuccess(String result) { loginView.loginSuccess(result); } }); } public void detach() { loginView = null; }}
Model类:
public class MainActivityModel { public void login(String username, String password, final ModelListener listener) { 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(); listener.loginSuccess(result); } }); } interface ModelListener { public void loginSuccess(String result); }}
MainActivity:
public class MainActivity extends AppCompatActivity implements LoginView { private EditText mainUsername; private EditText mainPassword; private Button mainBtn; private MainActivityPresenter presenter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { mainUsername = (EditText) findViewById(R.id.main_username); mainPassword = (EditText) findViewById(R.id.main_password); mainBtn = (Button) findViewById(R.id.main_btn); presenter = new MainActivityPresenter(this); mainBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String username = mainUsername.getText().toString().trim(); String password = mainPassword.getText().toString().trim(); presenter.login(username, password); } }); } @Override public void usernameNull() { Toast.makeText(this, "usernameNull", Toast.LENGTH_SHORT).show(); } @Override public void passwordNull() { Toast.makeText(this, "passwordNull", Toast.LENGTH_SHORT).show(); } @Override public void loginSuccess(String result) { runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this, "loginSuccess", Toast.LENGTH_SHORT).show(); } }); } @Override protected void onDestroy() { super.onDestroy(); presenter.detach(); }}
定义接口:
public interface LoginView { public void usernameNull(); public void passwordNull(); public void loginSuccess(String result);}
最终是这样的:
阅读全文
0 0
- MVP简单实现
- Mvp简单实现
- MVP简单登录实现
- 简单MVP实现
- java-mvp模式简单实现
- MVP架构的简单实现
- MVP简单的实现登录
- 简单实现mvp模式登录
- MVP 深引用方式的简单实现
- Android mvp的简单使用和实现
- Android中MVP模式的简单实现
- Mvp+Rxandroid+Retrofit的简单实现
- Android MVP模式的简单实现
- Android最简单的方式实现MVP
- kotlin实现 简单的MVP模式
- 简单的用MVP实现登录界面
- mvp的基本登录(简单实现)
- 简单实现断点续传+MVP+Retrofit+RxJava
- 据说这个说话的。。。。。。。那啥。
- taskctl自带工具splitexm功能及使用
- SpringMVC 、JSP、Servlet中的相对路径和绝对路径完全手册
- C#打印时带背景颜色
- Servlet
- Mvp简单实现
- Java多线程知识整理
- html入门篇--css优先级
- docker 私服
- Linux环境编程主要头文件分析
- Win10使用附件中的远程桌面连接Ubuntu 16.04图形界面(xrdp方法)
- JAVA date类型处理的一些小知识
- 9-27 DAIRY
- 字符串(含汉字)与十六进制互转js脚本-utf