扩展AndroidAnnotations使用MVP模式编程

上代码

Activity实现一组接口,用来对View进行操作

public class MainActivity extends Activity implements TestView{
//MVP中的P,一个View可以有多个P,实现多组业务逻辑,比如在主界面还需要读取Conversation 的内容
@Bean(TestActions.class)
ITestActions testActions;
@ViewById(R.id.btn_back)
Button btnBack;
@ViewById(R.id.btn_noback)
Button btnNoback;
//TestView接口,用于界面显示,由于Actions可能在线程里面调用,需要UIThread安全
@UiThread
@Override
public void showName(String name) {
Toast.makeText(this, name, Toast.LENGTH_SHORT).show();
btnBack.setText("clicked");
}
//事件1
@Click(R.id.btn_back)
public void doInback(){
testActions.doInbackground();
}
//事件2
@Click(R.id.btn_noback)
public void doNoBack(){
testActions.doNoback();
}
}

View接口可以实现多个

TestActions实现业务逻辑,并注入TestView接口用于回调显示

@EBean
public class TestActions implements ITestActions {
**//自动注入UI的View,Fragment或者Activity,P中View也可以有多个,不同View对应不同模块,这个标签是扩展的,用来注入View接口**
@ViewInterface
TestView view;
//方法1,通过线程跑,后台任务
@Override
@Background
public void doInbackground() {
//这里做一些业务,调用View的showName显示到UI
view.showName("show in back ground2");
}
//方法2,在UI主线程跑
@Override
public void doNoback() {
view.showName("show in no back");
}
}

TestView接口

public void showName(String name);
时间: 2024-10-19 14:02:15

扩展AndroidAnnotations使用MVP模式编程的相关文章

在Android上用MVP模式编程的实践

首先,谁是V?谁是P?(M我认为不是问题) View,应该是实现显示逻辑,在Android开发中,我们认为Fragment.Activity都可以被当做View,他们主要任务就是控制显示逻辑,这部分代码不太经常重用.View通过调用P的业务逻辑,来实现业务.业务包括同步的业务(可以在UI线程操作)和异步的任务(如网络.磁盘IO等耗时操作),并根据P的业务返回结果来响应地改变UI. 对Presenter的实现,我们用AndroidAnnotations框架的EBean实现(如果不熟悉这个框架,请G

[转]MVP模式开发

转自:http://www.jianshu.com/p/f7ff18ac1c31 基于面向协议MVP模式下的软件设计-(iOS篇) 字数9196 阅读505 评论3 喜欢11 基于面向协议MVP模式下的软件设计-(iOS篇) 传统模式下的开发 MVC MVVM 基于面向协议MVP的介绍 MVP实战开发 说在前面:相信就算你是个iOS新手也应该听说过MVC的,MVC是构建iOS App的标准模板.随着时间的推移,在iOS平台上MVC也逐渐开始面临着越来越多的问题,最近又开始流行MVVM,MVVM使

应用MVP模式对遗留代码进行重构

AV(Autonomous View)自治视图 在面向终端用户的应用中,都需要一个可视化的UI来与用户交互.这个UI称为View视图. 在早期,我们习惯将所有前台的逻辑,与视图揉在一起,称为AV自治视图. 这些逻辑包括:数据呈现(Display),用户动作的扑捉与响应,数据存储等. 在.Net的Winform和ASP.NET Web Form中,采用的都是事件驱动模型. AV是将所有UI相关的逻辑都注册到视图本身,或者视图元素对应的事件上. 人机交互应用的3个关注点. 数据在UI上的展示. UI

从最简单的HelloWorld理解MVP模式

大多数编程语言相关的学习书籍,都会以hello,world这个典型的程序作为第一个示例.作为Android应用开发者,无论使用eclipse还是用android studio,在新建项目的时候,一直按IDE默认选择项,下一步进行下去,就会创建出一个可以运行的hello,world应用程序.对于这个程序,可以认为是采用MVC模式,对应关系为: View:对应于布局文件 Model:业务逻辑和实体模型 Controller:对应于Activity   但是数据绑定.事件处理(hello world程

iOS学习之MVC,MVVM,MVP模式优缺点

为什么要关注架构设计? 因为假如你不关心架构,那么总有一天,需要在同一个庞大的类中调试若干复杂的事情,你会发现在这样的条件下,根本不可能在这个类中快速的找到以及有效的修改任何bug.当然,把这样的一个类想象为一个整体是困难的,因此,有可能一些重要的细节总会在这个过程中会被忽略. 分析三种模式的优缺点: MVC 即 Modal View Controller(模型 视图 控制器). 20 世纪 80年代为编程语言 Smalltalk-80 发明的一种软件设计模式 MVC 的几个明显的特征和体现: 

.Net平台-MVP模式再探(二)

PS: 本文与上一遍文章没有什么必然的联系,可以说是对于MVP的一定的加深,或许在理解上比上一篇多有点难度. 正文 如果从层次关系来讲,MVP属于Presentation层的设计模式.对于一个UI模块来说,它的所有功能被分割为三个部分,分别通过Model.View和Presenter来承载.Model.View和Presenter相互协作,完成对最初数据的呈现和对用户操作的响应,它们具有各自的职责划分. 一.简单讲讲MVP是什么玩意儿 如果从层次关系来讲,MVP属于Presentation层的设

Android开发:浅谈MVP模式应用与内存泄漏

最近博主开始在项目中实践MVP模式,却意外发现内存泄漏比较严重,但却很少人谈到这个问题,促使了本文的发布,本文假设读者已了解MVP架构. 本文原创作者:xiong_it,链接:http://blog.csdn.net/xiong_it MVP简介 M-Modle,数据,逻辑操作层,数据获取,数据持久化保存.比如网络操作,数据库操作 V-View,界面展示层,Android中的具体体现为Activity,Fragment P-Presenter,中介者,连接Modle,View层,同时持有modl

Android上的MVP模式

什么是MVP? MVP模式可以分离显示层和逻辑层,所以功能接口如何工作与功能的展示可以实现分离,MVP模式理想化地可以实现同一份逻辑代码搭配不同的显示界面.首先要澄清就是MVP不是一个结构化的模式,它只是负责显示层而已,任何时候都可以在自己的项目结构中使用MVP模式. 为什么要使用MVP? 我们知道在Android上逻辑接口和数据存取是紧耦合的,这个问题可以看看CursorAdapter这个例子,它既融合了适配器,同时也有显示的成分,而cursor很大程度上应该是数据数据存取层的. 对于一个可扩

关于Android MVP模式的思考

最近经常看到各种介绍MVP模式的博客的,之前写过不少的Android应用,在做那些应用的时候,都是要求快速完成,所以从开始设计到写代码就一直考虑着重用.以前写的项目基本都是不断重构项目,将项目代码变得更加精简,提高代码之间的复用性.但是代码并没有特别地注重按照MVC模式或者是MVP模式来,更多的是直接考虑模块化,重用,精简.所以看了MVP模式后,决定去总结一下自己代码中的问题并优化,算是对自己之前写的代码的回顾. MVP框架 MVP框架是目前在Android流行起来的框架,它非常适合用于Andr