Android Mvp 简单示例
来源:互联网 发布:我要开店淘宝网 编辑:程序博客网 时间:2024/04/29 04:28
android mvp简单示例
博主最近在学mvp,做个简单的博客,锻炼下动手能力。mvp的概念就不介绍了,项目分层model, presenter, view:简单说明下3个层:
- model层 类。
- presenter层 逻辑处理。
- view层 界面视图。
首先创建一个activity:
public class MvpActivity extends BaseAppCompatActivity implements IUserView { private EditText et_myname; private EditText et_words; private Button btn_listen; private TextView tv_str; private UserPresenterCompl compl; private String talkString = ""; private UserModel userModel; @Override protected int getLayoutId() { return R.layout.test_mvp; } @Override public void initElem() { compl = new UserPresenterCompl(this); userModel = new UserModel("", 0, true, true); et_myname = (EditText) findViewById(R.id.et_myname); et_words = (EditText) findViewById(R.id.et_words); tv_str = (TextView) findViewById(R.id.tv_str); btn_listen = (Button) findViewById(R.id.btn_listen); btn_listen.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (!et_myname.getText().toString().isEmpty()) userModel.setName(et_myname.getText().toString()); talkString = et_words.getText().toString().trim(); //我跟他说 他听 compl.userListen(talkString, userModel); } }); } @Override public void onListenResult(String text) { tv_str.setText(text); }}
activity实现了IUserView这个接口:
public interface IUserView { public void onListenResult(String text); //听完回复}
业务逻辑的接口
public interface IUserPresenter { public void userListen(String text, UserModel who); //用户听到某个人说}
业务逻辑的实现
public class UserPresenterCompl implements IUserPresenter { private IUserView mainView; private UserModel obj; public UserPresenterCompl(IUserView mainView) { this.mainView = mainView; obj = new UserModel("小哈", 15, true, true); } @Override public void userListen(String text, UserModel who) { if (obj.isCanListen() && obj.isCanTalk()) //用户听到了 回复 mainView.onListenResult("我是:" + obj.getName() + ", " + "我听到:" + who.getName() + "说" 时text); }}
到这里,可以清楚的明白一个小流程,在activity里面创建了界面视图,button点击的时候分发业务给presenter实现逻辑, present处理完事情把结果返回给了activity,activity根据返回来处理界面的变换。代码逻辑清楚了,在也不会在一个activity做大量的操作, 把页面和逻辑分开了。
0 0
- Android Mvp 简单示例
- Android中Mvp模式的简单示例
- MVP简单示例
- Android MVP 架构示例
- 简单Android MVP 实例
- Android Mvp简单梳理
- 简单的mvp+retrofit+rxjava示例
- 简单的mvp+retrofit+rxjava示例
- Android MVP架构简单封装
- Android MVP模式 简单使用方法
- Android 简单的MVP实例
- Android官方MVP架构示例项目解析
- Android官方MVP架构示例项目解析
- Android官方MVP架构示例项目解析
- Android官方MVP架构示例项目解析
- Android官方MVP架构示例项目解析
- Android官方MVP架构示例项目解析
- Android-----官方MVP架构----示例项目解析
- TCP的状态 (SYN, FIN, ACK, PSH, RST, URG)
- Nmap的使用1
- Android生成签名文件并用其对apk文件进行签名(Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]异常完美解决)
- gradle离线包下载更新
- MATLAB(1)基于遗传算法解决最优化问题及相应的MATLAB遗传工具箱使用
- Android Mvp 简单示例
- Android网上项目收集
- HDU 2844 Coins(多重背包模板题)
- EI收录的中文期刊
- C++采用内存映射方式高效率读写大数据
- 关于多个线程与此同时调用单例模式的对象,该对象中方法的局部变量是否会受多个线程的影响
- java死锁的一个例子
- Spring mvc / 和 /*的区别
- Android广播机制