疯狂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 ...
随机推荐
- 给Mac OS X的“逻辑宗卷组”改名
近日更新了Mac OS X的10.10版本——Yosemite,感觉良好,但当我在打开磁盘工具的时候发现了一个美中不足的地方,磁盘宗卷组的名字居然还是我之前的“Mavericks”,如图: 如何对它进 ...
- PHP运行及语句及逻辑
php开发网页需要存放在wamp根目录下的www文件夹中才可运行成功.同时wamp要处于运行状态. 无站点情况下打开方式: 网址栏中输入:localhost/文件名称 代码规范: 用 <?p ...
- 修改windows自带的Ctrl+Space输入法切换快捷键
使用场景: 多为我等码农使用一些编辑器时,编辑器的默认代码提示热键为 ctrl+space ,但这个热键被系统的输入法开关占用.如果遇到可以设置快捷键的编辑器还好,要是不能设置的话(比如火狐浏览器的代 ...
- Android第一天
---恢复内容开始--- 一.配置JDK 第一步:右键我的电脑-属性-高级系统设置-环境变量 输入变量名和变量值: 环境变量名和变量值: 变量名:JAVA_HOME 变量值:D:\Java\jdk1. ...
- Java 抽象类的理解
1. 基本概念 用abstract修饰的类是抽象类.如果类中有方法是abstract类型的,那么此类肯定是abstract类型的,也就是说此类的修饰符肯定有abstract(也就是说,有抽象方法的类是 ...
- Mask裁切UI粒子特效或者3D模型
刚好前几天有人问我这个问题,再加上新项目也可能用,所以这两天就研究了一下.其实如果粒子特效 和3D模型 都用RenderTexture来做的话就不会有裁切的问题,但是粒子特效用RenderTextur ...
- 传智播客--数据绑定--INotifyPropertyChanged(小白内容)
INotifyPropertyChanged一般在数据绑定的时候使用. InotifyPropertyChanged是.net内置的接口,数据绑定时会检测DataContext是否实现了Inotify ...
- bootstrap 学习
<!DOCTYPE html> <html> <head> <title>Bootstrap</title> <meta name=& ...
- 深入理解javascript函数系列第四篇——ES6函数扩展
× 目录 [1]参数默认值 [2]rest参数 [3]扩展运算符[4]箭头函数 前面的话 ES6标准关于函数扩展部分,主要涉及以下四个方面:参数默认值.rest参数.扩展运算符和箭头函数 参数默认值 ...
- 关于z-index鲜为人知的事情
关于z-index很少有人去深入的了解它,因为它看起来一点儿也不复杂,不就是谁的数字大,谁就显示在前面吗?然而今天所摘录的这篇博文,让我震惊了.我承认我从来没有花时间去看具体的z-index相关文档, ...