转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/7513290.html

一:activity定义了app的页面

一个app有很多个页面组成,一个页面其实就是一个activity,activity是app的基本组成单元。

那么activity是怎么定义出来的呢?

二:基于MVC模式的activty

学过Web开发的人应该都知道MVC模式:M是模型,是数据;V是视图;C是控制、逻辑。

那么运行在手机上的app同样离不开这三个元素,一个能够实际应用的activity一般都要提供这三种组成元素:

1)M:模型、数据。在上一篇博客中,我们知道res目录下存放的都是资源文件,这些就是activity需要取用的数据了。也就是说,activity要使用的静态数据,我们放在res目录下。【当然,也有动态数据,那些就是在控制层通过网络请求而得来的数据了。】

2)V:视图。我们在创建一个activity时,通常会在res/layout目录下生成一个同名的xml文件,这个,就是该activity的视图文件,也就是在app中的页面。

在该层,我们可以通过拖动式编程快速构造出页面的外形,再通过代码编辑细化各个控件的属性,这样一个页面的外表就搭建起来了。

3)C:逻辑控制层。在上面两层中,我们提供了一个页面需要用到的数据、基本外表。但是怎样组织、使用这些数据和视图元素,就需要在逻辑控制层来定义了。

创建一个activity时,会在java目录的包下生成一个同名的java文件,这个就是该activity对应的逻辑控制层。在该层中,我们可以定义一系列的方法获取网络数据;可以通过id来获取视图控件,为之赋值;可以为视图层控件定义事件响应函数;可以定义该actvity各生命周期的函数......

三:activity的有机组织得到app

通过第二步,我们可以定义一个功能完备的activity。但是,这样定义出来的都是一些独立的页面,我们需要把它们串联起来。

串联有两层意思:

1:动作上的串联:activity之间的跳转,这主要是通过Intent来实现。

2:数据上的串联:activity之间的数据传递,可以通过intent来携带,也可以通过ContentProvider、广播、网络请求等手段来实现。

最新文章

  1. .NET同步与异步之相关背景知识(六)
  2. 关于myeclipse的破解的问题
  3. Unity开发游戏 flapybird 无广告老马版分享
  4. 【转】Xcode概览(Xcode 6版):循序渐进认识Xcode
  5. [USACO 3.1.4]rect1(漂浮法/矩形切割)
  6. android开发的学习路线
  7. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(18)-权限管理系统-表数据
  8. rzsz不能大于4G,securefx传5.2G没有问题,
  9. iOS 获取联系人,并调用系统地址簿UI
  10. MySQL5.5安装出现CMake错误找不到CMakelists.txt原因
  11. wpf 透明效果 需要DwmApi.dll文件,然后定义一个函数去画Aero区域,从而实现整个窗口的Aero化。
  12. 【Linux init】systemd 服务单元管理
  13. ejabberd为游戏免除注册限制
  14. 使用pypi-server搭建简单的PyPI源
  15. Prometheus监控⼊⻔简介
  16. CSS文本属性 文本阴影text-shadow 换行 text-overflow
  17. libavcodev may be vulnerable or is not supported, and should be updated for play video
  18. AbstractRoutingDataSource 实现动态切换数据源
  19. 数组去重(JS)
  20. asp.net core下的如何给网站做安全设置

热门文章

  1. SharePoint Online 创建和使用栏
  2. JS --- reduce()函数
  3. smb与samba
  4. Linux Command : top
  5. json schema校验
  6. 企业级搜索引擎Solr 第三章 索引数据(Indexing Data)[1] (转)
  7. [leetcode]Set Matrix Zeroes @ Python
  8. RV LayoutManager 流式布局 MD
  9. C# 将 Json 解析成 DateTable
  10. python3 杀死进程