Android 最简单的MVP案例;
随手撸个发出来:
V:界面层
//界面层需要实现P.View方法,然后重写P.View中的方法;M层给的数据就在这些个方法的参数中;
// 还要获取到P.Provide的实例,使用P.Provide去调用M层的方法;
public class ActivityDemo extends AppCompatActivity implements DemoP.View {
private DemoP.Provide provide;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_demo);
new DemoM(this);
provide.start();
}
@Override
public void showMessage(String msg) {
Log.i("mvp", "showMessage: "+msg);
}
@Override
public void Provide(DemoP.Provide m) {
provide = m;
}
}
P:连接层
public interface DemoP {
//提供界面
interface View{
void showMessage(String msg);
void Provide(DemoP.Provide m);
}
//提供信息
interface Provide{
void start();
}
}
M:数据层
// 数据层需要实现P.Provide,然后重写P.Provide;V层就要调用你的这些方法;
// 还要获取到P.View的实例,使用P.View把你处理好的数据返回给V层;
public class DemoM implements DemoP.Provide{
private DemoP.View view;
public DemoM(DemoP.View v){
view = v;
view.Provide(this);
}
@Override
public void start() {
StringBuffer ss = new StringBuffer();
for (int i = 0; i < 10; i++) {
ss.append("\n--"+i);
}
view.showMessage(ss.toString());
}
}
如果刚接触MVP看着有疑惑,就照着撸一遍,大致就能懂了;
还可以看看封装一下的:MVP案例
Android 最简单的MVP案例;的更多相关文章
- 转:Android开发中的MVP架构(最后链接资源不错)
Android开发中的MVP架构 最近越来越多的人开始谈论架构.我周围的同事和工程师也是如此.尽管我还不是特别深入理解MVP和DDD,但是我们的新项目还是决定通过MVP来构建. 这篇文章是我通过研究和 ...
- Android中简单活动窗口的切换--Android
本例实现Android中简单Activity窗口切换:借助intent(意图)对应用操作(这里用按钮监听)等的描述,Android根据描述负责找对应的组件,完成组件的调用来实现活动的切换……案例比较简 ...
- Android 实现简单音乐播放器(二)
在Android 实现简单音乐播放器(一)中,我介绍了MusicPlayer的页面设计. 现在,我简单总结一些功能实现过程中的要点和有趣的细节,结合MainActivity.java代码进行说明(写出 ...
- Android 实现简单音乐播放器(一)
今天掐指一算,学习Android长达近两个月了,今天开始,对过去一段时间的学习收获以及遇到的疑难杂症做一些总结. 简单音乐播放器是我自己完成的第一个功能较为完整的APP,可以说是我的Android学习 ...
- Android课程---Android Studio简单设置
Android Studio 简单设置 界面设置 默认的 Android Studio 为灰色界面,可以选择使用炫酷的黑色界面.Settings-->Appearance-->Theme, ...
- Android实现简单音乐播放器(MediaPlayer)
Android实现简单音乐播放器(MediaPlayer) 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 工程内容 实现一个简单的音乐播放器,要求功能 ...
- Android实现简单拨号器
Android实现简单拨号器 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 代码实现 界面布局只有GridLayout和EditText两个控件,全部 ...
- 【转】Android Studio简单设置
原文网址:http://ask.android-studio.org/?/article/14 Android Studio 简单设置 界面设置 默认的 Android Studio 为灰色界面,可以 ...
- Android发展简单介绍
Android一词的本义指“机器人”,同一时候也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统.中间件.用户界面和应用软件组成,号称是首个为移动 ...
随机推荐
- CAD小小调整,复制生成二层5.28
1.栏杆剖切索引:“符号标注”“索引符号",填写文字,标注效果: 2,台阶剖切索引:填写文字,标注效果: 3.符号标注:图名标注: 4一层平面图完成.复制生成二层平面,把图名改为”二层平面图 ...
- C# 远程传输File文件
/// <summary> /// 向论坛传图片文件 /// </summary> /// <param name="filePath">< ...
- R语言scale与unscale函数
一.scale函数 R语言base库中自带数据标准化接口scale函数,函数介绍如下 Usage scale(x, center = TRUE, scale = TRUE) Arguments x: ...
- Python *Mix_w3
1.基本数据类型(int,bool,str) int 整数 str 字符串. 一般不存放大量的数据 bool 布尔值. 用来判断. True, False list 列表.用来存放大量数据, []表示 ...
- 羽翼metasploit第一,二季学习笔记
-----------------第一季-------------------- 启动Metasploit:msfconsole 升级和更新:./msfupdate 直接退出:exit 退回上一级:q ...
- .net core WebApi Interlocked配合ManualResetEventSlim实现并发同步
由于项目有某种需求,在WebApi中,有大量的请求需要操作相同的数据,因此需要用到并发同步机制去操作共享的数据. 本次配合使用Interlocked和ManualResetEventSlim来实现并发 ...
- vue-vuex状态管理-1
export default vuex.Store{ State, //数据库. getters,// 是我们从数据库里取数据的 API,getters 得是一个”纯函数“ actions,//处理数 ...
- nopi 简洁笔记
导出excel /// <summary> /// 增加二维码 /// </summary> /// <param name="dt">< ...
- servlet邮箱激活验证实例含代码
也有很多人本来有机会的,他们都拒绝了,不想让自己太累,太麻烦.或者中途被情绪所左右,半途而废了. 成长是有代价的,同样悠闲也是有代价的. 流程: 用户填写相关信息,点击注册按钮 系统先将用户记录保存到 ...
- CSS3中的浮动
一.标准文档流:指元素根据块元素或行内元素的特性按从上到下,从左到右的方式自然排列.这也是元素默认的排列方式 二.display属性 display:更改块级元素和行内元素的相互转换 ...