疯狂Android讲义 - 学习笔记(四)
Android应用通常有多个Activity,多个Activity组成Activity栈,当前活动的Activity位于栈顶。Activity相当于Java Web开发的Servlet。当Activity处于Android应用运行时,同样受系统控制、有生命周期。
4.1 建立、配置和使用Activity
4.1.1 Activity 建立自己的Activity需要集成Activity基类,在不同的应用场景,有时也能集成Activity的子类。
Activity间接或直接继承了Context、ContextWrapper、ContextThemeWrapper等基类,可以直接调用它们的方法。
创建一个Activity需要实现一个或多个方法,其中最常见的是onCreate()方法,该方法会再Activity创建时回调,该方法调用setContentView()方法来显示要展示的View。 findViewById()方法获取界面中的组件。
(源码\04\4.1\OtherActivity)
4.1.2 配置Activity Android应用要求所有应用程序组件都必须显式进行配置。
4.1.3 启动、关闭Activity 用finish()方法结束(源码\04\4.1\StartActivity)
4.1.4 用Bundle在Activity之间交换数据:用Activity之间的信使Intent,Intent提供了多个重载方法来携带数据。
(源码\04\4.1\BundleTest)
4.1.5 启动其它Activity并返回结果
(源码\04\4.1\ActivityForResult)
4.2 Activity的回调机制
4.3 Activity的生命周期与加载模式
Activity的活动状态由Android以Activity栈的形式管理,当前活动的Activity位于栈顶。Activity大致有4个状态:活动状态、暂停状态、停止状态、销毁状态。
4.3.1 Activity的生命周期 P263
4.3.2 Activity与Servlet的相似性与区别
4.3.3 Activity的4种加载模式
4.4 Fragment 详解
4.4.1 Fragment 概述
4.4.2 创建Fragment
(源码\04\4.4\FragmentTest)
4.4.3 Fragment与Activity通信
把Fragment添加到Activity的方法:
方法一:在布局文件中使用<fragment .../>元素,其android:name属性指定Fragment的实现类。
方法二:通过Activity的getFragmentManager()方法返回FragmentManager,调用FragmentManager.beginTransaction()方法即可返回FragmentTransaction对象,这个对象的add()方法可以添加Fragment。
把Fragment和Activity相互查找的方法:
Fragment调用getActivity()方法可获得它所在的Activity。
Activity获取它包含的Fragment:调用关联的FragmentManager的findFragmentById()或findFragmentByTag()方法。
android:id 和 android:tag属性都可以用于标识Fragment。
把Fragment和Activity相互传递数据的方法:
Activity向Fragment传递数据:创建Bundle数据包,调用Fragment的setArguments()方法。
Fragment向Activity传递数据(也可以运行中实时传递): 在Fragment中定义一个内部回调接口,再让Activity实现该回调接口。
4.4.4 Fragment管理与Fragment事务 (FragmentManager与FragmentTransaction)
Activity依靠FragmentManager管理Fragment。
与数据库事务类似,FragmentTransaction代表了Activity对Fragment执行的多个改变操作,执行了一个或多个 改变后,需调用commit()方法提交事务。
(源码\04\4.4\SeniorFragmentTest)
4.5 Fragment的生命周期
P285 生命周期 各个时期会被系统回调的方法。
疯狂Android讲义 - 学习笔记(四)的更多相关文章
- 疯狂Android讲义 - 学习笔记(一)
常用开发工具的用法 android : 启动Android SDK管理器 android --help 查看具体用法 android create avd -n t10 -t 10 -b armea ...
- 疯狂Android讲义 - 学习笔记(八)
第10章 Service与BroadcastReceiver 10.1 Service简介 Service组件也是可执行的程序,有自己的生命周期,创建.配置Service与创建.配置Activity的 ...
- 疯狂Android讲义 - 学习笔记(七)
第8章 Android数据存储与IO Java IO的数据存储可以移植到Android应用开发上来,Android系统还提供了一些专门的IO API. Android系统内置了SQLite数据库,S ...
- 疯狂Android讲义 - 学习笔记(六)
第7章 7.1 使用简单图片 7.1.1 使用Drawable对象 7.1.2 Bitmap和BitmapFactory 7.2 绘图 7.2.1 Android绘图基础:Canvas.Paint等 ...
- 疯狂Android讲义 - 学习笔记(五)
第五章 Android使用统一的Intent对象来封装“启动意图”,不管是启动Activity.Service组件.或者BroadcastReceiver等,提供了一致的编程模型.Intent设计有点 ...
- 疯狂Android讲义 - 学习笔记(三)
Android的事件处理 3.1 Android提供了两套事件处理机制:基于监听的事件处理.基于回调的事件处理. 3.2 基于监听的事件处理 3.2.1 监听的处理模型 主要涉及三类对象:Event ...
- 疯狂Android讲义 - 学习笔记(二)
Android应用的用户界面编程 2.1 界面编程与视图(View)组件 Android应用的绝大部分UI组件放在android.widget.android.view包及其子包中,所有UI组件都继承 ...
- 【疯狂Java讲义学习笔记】【流程控制与数组】
[学习笔记]1.switch语句后的expression表达式的数据类型只能是byte.short.char.int四个整数类型.String(Java 7后才支持)和枚举类型. 2.数组的长度不可变 ...
- 【疯狂Java讲义学习笔记】【数据类型与运算符】
[学习笔记]1.8bit = 1byte,4byte = 1word.Java中的整型数据有byte(1字节),short(2字节),int(4字节),long(8字节).Java中的浮点数据有flo ...
随机推荐
- redis总结
redis总结 redis与memcached redis支持更多的数据结构 redis支持数据持久化 redis支持两种存储方式:snapshot(快照)和aof(append only mode) ...
- Inter Core CPU 型号的尾字母含义
Inter Core CPU 型号的尾字母含义: M:表示移动处理器(Mobile Processor):QM:四核移动处理器(Quad Mobile Processor):U:超低电压处理器(Ult ...
- iOS-调试技巧
目录 前言逼优鸡知己知彼 百战不殆抽刀断Bug 普通操作 全局断点(Global BreakPoint) 条件断点(Condational Breakpoints)打印的艺术 NSLog 开启僵尸对象 ...
- MySQL_02之增删改查、PHP数据库操作
1.数据操作: ①插入记录: 插入单条记录:INSERT tbl_name(字段名称,--) VALUES(字段值,--); 插入多条记录:INSERT tbl_name(字段名称,--) VAL ...
- gulp启动一个小型web服务器配置&browserify(require)
var gulp = require('gulp'), connect = require('gulp-connect'), // 运行live reload服务器 browserify = requ ...
- LINQ to Entities 不支持 LINQ 表达式节点类型“ArrayIndex”
我就不屁话,能一张图就解决的就不说话了 2015-03-28 14:53:24,440 [10] ERROR log - System.NotSupportedException: LINQ to E ...
- 理解DOM事件流的三个阶段
本文主要解决两个问题: 1.什么是事件流 2.DOM事件流的三个阶段 事件流之事件冒泡与事件捕获 在浏览器发展的过程中,开发团队遇到了一个问题.那就是页面中的哪一部分拥有特定的事件? 可以想象画在一张 ...
- ASP.NET MVC5 网站开发实践(二) Member区域 - 咨询管理的架构
咨询.留言.投诉等功能是网站应具备的基本功能,可以加强管理员与用户的交流,在上次完成文章部分后,这次开始做Member区域的咨询功能(留言.投诉都是咨询).咨询跟文章非常相似,而且内容更少.更简单. ...
- 【开源】OSharp3.3框架解说系列:开发计划与进度
OSharp是什么? OSharp是个快速开发框架,但不是一个大而全的包罗万象的框架,严格的说,OSharp中什么都没有实现.与其他大而全的框架最大的不同点,就是OSharp只做抽象封装,不做实现.依 ...
- ASP.NET MVC之JsonResult(六)
前言 这一节我们利用上节所讲Unobtrusive Ajax并利用MVC中的JsonResult来返回Json数据. JsonResult 上节我们利用分部视图返回数据并进行填充,当我们发出请求需要获 ...