主页 详情

《Head First Android开发 第2版》_(美)Dawn Griffiths,(美)David Griffiths_14493165_978751

【书名】:《Head First Android开发 第2版》
【作者】:(美)Dawn Griffiths,(美)David Griffiths
【出版社】:北京:中国电力出版社
【时间】:2018
【页数】:888
【ISBN】:9787519821500
【SS码】:14493165

最新查询

内容简介

1入门 投身新领域

欢迎来到Android世界

Android平台剖析

我们要做的工作

你的开发环境

安装Android Studio

构建一个基本应用

如何构建应用

活动和布局概览

如何构建应用(续)

你已经创建了你的第一个Android应用

Android Studio会为你创建一个完整的文件夹结构

工程中的有用文件

用Android Studio编辑器编辑代码

在Android模拟器上运行应用

创建Android虚拟设备

在模拟器中运行应用

可以在控制台上查看进度

发生了什么

改进应用

布局里有什么

activity_main.xml包含两个元素

更新布局中显示的文本

试一试应用

你的Android工具箱

2构建交互式应用 真正有用的应用

构建一个啤酒荐酒师应用

创建工程

我们已经创建了默认活动和布局

详细介绍设计编辑器

使用设计编辑器增加一个按钮

activity_find_beer.xml有一个新按钮

仔细查看布局代码

试一试应用

硬编码文本很难实现本地化

创建字符串资源

在布局中使用字符串资源

activity_find_beer.xml的代码

向spinner增加值

向strings.xml增加string-array

试一试spinner

需要让按钮做些事情

让按钮调用一个方法

活动代码

为活动增加onClickFindBeer()方法

onClickFindBeer()需要做些什么

一旦有了View,就能访问它的方法

更新活动代码

活动的第一个版本

这些代码做什么

构建定制Java类

运行代码时发生了什么

试一试应用

你的Android工具箱

3多个活动和意图 说出你的意图

应用可以包含多个活动

应用结构

开始吧:创建工程

更新布局

创建第二个活动和布局

认识Android清单文件

意图是一个消息类型

运行应用时会发生什么

向第二个活动传递文本

更新文本视图属性

putExtra()在意图中增加额外的信息

更新CreateMessageActivity代码

让ReceiveMessageActivity使用意图中的信息

用户单击Send Message按钮时发生了什么

可以修改应用向其他人发送消息

Android应用如何工作

创建意图指定一个动作

修改意图来使用动作

Android如何使用意图过滤器

如果总是想让用户选择活动该怎么做

调用createChooser()时发生了什么

修改代码创建选择器

你的Android工具箱

4活动生命周期 活动的一生

活动到底如何工作

秒表应用

增加字符串资源

活动代码如何工作

为按钮增加代码

runTimer()方法

完整的runTimer()代码

完整的StopwatchActivity代码

旋转屏幕会改变设备配置

活动的状态

活动生命周期:从创建到撤销

更新的StopwatchActivity代码

运行应用时发生了什么

活动的生命中不只是有创建和撤销

更新的StopwatchActivity代码

运行应用时会发生什么

不过如果应用只是部分可见会怎么样

活动生命周期:前台生命期

如果活动暂停就停止秒表

实现onPause()和onResume()方法

完整的活动代码

运行应用时发生了什么

生命周期方法快速指南

你的Android工具箱

5视图和视图组 享受视图

用户界面由布局和GUI组件组成

LinearLayout将视图显示在一行或一列中

增加尺寸资源文件为不同布局指定一致的内边距

使用外边距增加视图间的距离

调整基本线性布局

增加权重扩展视图

android:gravity属性的可用值

完整的线性布局代码

帧布局叠放视图

为工程增加一个图像

嵌套布局的完整代码

FrameLayout:小结

使用视图

可编辑文本视图

开关按钮

开关

复选框

单选钮

Spinner

图像视图

为按钮增加图像

滚动视图

toast

你的Android工具箱

6约束布局 集中在一起

嵌套布局可能效率很低

引入约束布局

确保你的工程包含约束布局库

向strings.xml增加字符串资源

使用蓝图工具

使用约束指定视图位置

增加一个垂直约束

对蓝图的改变会反映到XML中

如何让视图居中

通过更新偏差调整视图的位置

如何改变视图的大小

如何对齐视图

建立一个真正的布局

首先,增加上面一行视图

推导约束特性会猜测要增加哪些约束

为蓝图增加下一行……

最后,为消息增加一个视图

试一试应用

你的Android工具箱

7列表视图和适配器 合理组织

所有应用都从想法开始

使用ListView导航到数据

饮料详细信息活动

Starbuzz应用结构

Drink类

顶级布局包含一个图像和一个列表

完整的顶级布局代码

利用监听器让列表视图响应单击

为列表视图设置监听器

类别活动显示一个类别的数据

更新activity_drink_category.xml

非静态数据要使用适配器

用数组适配器连接列表视图和数组

为DrinkCategory Activity增加数组适配器

应用回顾:我们做了哪些工作

如何在TopLevelActivity中处理单击

完整的DrinkCategory Activity代码

用数据更新视图

DrinkActivity代码

运行应用时发生了什么

你的Android工具箱

8支持库和应用条 走捷径

好应用都有清晰的结构

不同类型的导航

应用主题来增加应用条

创建披萨应用

增加v7 AppCompat支持库

AndroidManifest.xml可以改变应用条的外观

如何应用主题

在样式资源文件中定义样式

定制应用的外观

在颜色资源文件中定义颜色

activity_main.xml的代码

ActionBar与Toolbar比较

在活动布局中包含工具条

为应用条增加动作

增加标签来改变应用条文本

AndroidManifest.xml的代码

控制动作的外观

完整的MainActivity.java代码

启用向上导航

在应用条上共享内容

为menu_ main.xml增加一个共享动作提供者

用意图指定内容

完整的MainActivity.java代码

你的Android工具箱

9片段 模块化

你的应用在所有设备上都要表现良好

应用可能还要有不同的行为

片段支持重用代码

应用的手机版本

创建工程和活动

为MainActivity的布局增加一个按钮

如何向工程增加片段

片段的onCreateView()方法

向活动布局增加片段

让片段与活动交互

Workout类

向片段传递训练项目ID

让活动设置训练项目ID

片段生命周期

在片段的onStart()方法中设置视图的值

如何创建列表片段

更新的WorkoutListFragment代码

activity_main.xml的代码

连接列表和详细信息

WorkoutListFragment.java的代码

MainActivity需要实现接口

DetailActivity需要向WorkoutDetailFragment传递ID

你的Android工具箱

10面向更大界面的片段 不同大小,不同界面

Workout用在手机和平板电脑上看上去是一样的

面向更大界面的设计

应用的手机版本

应用的平板电脑版本

创建一个平板电脑AVD

将屏幕特定资源放在屏幕特定文件夹中

不同的文件夹选项

平板电脑使用layout-large文件夹中的布局

更新后的代码会做什么

我们要修改itemClicked()代码

希望片段处理后退按钮

认识后退堆栈

后退堆栈事务并不只是活动

通过编程使用帧布局替换片段

利用布局差别区分设备使用的布局

修改后的MainActivity代码

使用片段事务

更新的MainActivity代码

旋转平板电脑时应用会出问题

(再谈)保存活动的状态

更新的WorkoutDetailFragment.java代码

你的Android工具箱

11动态片段 嵌套片段

增加动态片段

应用的新版本

创建TempActivity

TempActivity需要扩AppCompatActivity

StopwatchFragment.java的代码

StopwatchFragment布局

将StopwatchFragment增加到TempActivity的布局

onClick属性调用活动中的方法,而不是片段的方法

将OnClickListener关联到按钮

StopwatchFragment代码

旋转设备会重置秒表

对静态片段使用〈fragment〉……

修改activity_temp.xml来使用FrameLayout

TempActivity.java的完整代码

为WorkoutDetailFragment增加秒表

完整的WorkoutDetailFragment.java代码

你的Android工具箱

12设计支持库 向右滑动

再来看披萨应用

应用结构

使用视图分页控件在片段间滑动

为MainActivity的布局增加一个视图分页控件

使用片段分页控件适配器让视图分页控件了解页面

片段分页控件适配器的代码

完整的MainActivity java代码

为MainActivity增加标签页导航

如何向布局增加标签页

将标签页布局关联到视图分页控件

完整的MainActivity.java代码

设计支持库帮助你实现材料设计

让工具条响应滚动

向MainActivity的布局增加一个协调器布局

如何协调滚动行为

为TopFragment增加可滚动的内容

完整的fragment_top.xml代码

向OrderActivity增加折叠工具条

如何创建一个普通的折叠工具条

如何为折叠工具条增加图像

更新后的activity_order.xml代码

FAB和snackbar

更新后的activity_order.xml代码

完整的OrderActivity.java代码

你的Android工具箱

13回收视图和卡片视图 回收

披萨应用还有工作要做

回收视图概览

增加披萨数据

在卡片中显示披萨数据

如何创建卡片视图

完整的card captioned_image.xml代码

增加回收视图适配器

定义适配器的视图持有者

覆盖onCreateViewHolder()方法

为卡片视图增加数据

完整的CaptionedImagesAdapterjava代码

创建回收视图

为PizzaFragment的布局增加RecyclerView

完整的PizzaFragment.java代码

回收视图使用一个布局管理器排列视图

指定布局管理器

完整的PizzaFragment.java代码

让回收视图响应单击

创建PizzaDetailActivity

PizzaDetailActivity.java的代码

让回收视图响应单击

可以从适配器监听视图事件

使你的适配器可重用

为适配器增加接口

PizzaFragment.java中实现监听器

你的Android工具箱

14导航抽屉 周游世界

标签页布局允许用户轻松导航……

我们要为一个新email应用创建一个导航抽屉

导航抽屉解析

创建CatChat工程

创建InboxFragment

创建DraftsFragment

创建SentItemsFragment

创建TrashFragment

创建一个工具条布局

更新应用的主题

创建HelpActivity

创建FeedbackActivity

创建导航抽屉头部

完整的nav header.xml代码

如何分组

把支持区段增加为一个子菜单

完整的menu nav.xml代码

如何创建导航抽屉

完整的activity_main.xml代码

为MainActivity的帧布局增加InboxFragment

增加抽屉开关

用户点击抽屉中的菜单项时做出响应

实现onNavigationItemSelected()方法

用户按后退按钮时关闭抽屉

完整的MainActivity.java代码

你的Android工具箱

15SQLite数据库 启动数据库

再来看Starbuzz

Android使用SQLite数据库持久存储数据

Android提供了一些SQLite类

当前的Starbuzz应用结构

修改应用来使用数据库

SQLite帮助器管理数据库

创建SQLite帮助器

SQLite数据库内部

使用结构化查询语言(SQL)创建表

使用insert()方法插入数据

插入多个记录

StarbuzzDatabaseHelper代码

SQLite帮助器代码会做什么

如果想要修改数据库呢?

SQLite数据库有一个版本号

改变版本号时会发生什么

用onUpgrade()升级数据库

用onDowngrade()降级数据库

下面来升级数据库

升级现有的数据库

用update()方法更新记录

对多个列应用条件

修改数据库结构

删除表

完整的SQLite帮助器代码

你的Android工具箱

16基本游标 取出数据

目前为止完成的工作……

Starbuzz应用的新结构

如何修改DrinkActivi来使用Starbuzz数据库

目前的DrinkActivity代码

得到数据库引用

用游标从数据库获取数据

从一个表返回所有记录

以特定顺序返回记录

返回选择的记录

到目前为止的DrinkActivity代码

要从游标读取记录,首先需要导航到这个记录

导航游标

获取游标值

DrinkActivity代码

目前为止完成的工作

目前的DrinkCategoryActivity代码

得到Starbuzz数据库的一个引用……

如何替换列表视图中的数组数据?

简单游标适配器将游标数据映射到视图

如何使用简单游标适配器

关闭游标和数据库

未完,继续

修改后的DrinkCategory Activity代码

DrinkCategory Activity代码(续)

你的Android工具箱

17游标与asynctasks 保持在后台

我们希望Starbuzz应用更新数据库数据

向DrinkActivity的布局增加一个复选框

显示FAVORITE列的值

响应单击事件来更新数据库

完整的DrinkActivity.java代码

在TopLevelActivity中显示用户的最爱

重构TopLevelActivity.java

新的TopLevelActivity.java代码

用changeCursor()改变游标

哪些代码在哪个线程中运行?

AsyncTask完成异步任务

onPreExecute()方法

doInBackground()方法

onProgressUpdate()方法

onPostExecute()方法

AsyncTask类

完整的UpdateDrinkTask类

完整的DrinkActivity java代码

你的Android工具箱

AsyncTask步骤小结

18启动式服务 愿意为您效劳

服务在后台工作

创建一个启动式服务

使用IntentService类创建一个基本启动式服务

如何记录消息日志

完整的DelayedMessageService代码

在AndroidManifest.xml中声明服务

为activity_main.xml增加一个按钮

使用startService()启动服务

启动式服务的状态

启动式服务生命周期:从创建到撤销

服务继承了生命周期方法

Android有一个内置的通知服务

我们将使用AppCompat支持库的通知

创建一个通知生成器

使用内置通知服务发出通知

完整的DelayedMessageService.java代码

你的Android工具箱

19绑定式服务和权限 绑定在一起

绑定式服务绑定到其他组件

创建一个新服务

实现一个绑定器

为服务增加一个getDistance()方法

更新MainActivity的布局

创建一个ServiceConnection

使用bindService()绑定服务

使用unbindService()与服务解除绑定

调用OdometerService的getDistance()方法

完整的MainActivity java代码

绑定式服务的状态

增加AppCompat支持库

为OdometerService增加位置监听器

更新的OdometerService代码

计算走过的距离

完整的OdometerService.java代码

让应用请求权限

检查用户对权限请求的响应

将通知代码增加到onRequestPermissionsResults()

完整的MainActivity.java代码

你的Android工具箱

很高兴你能来到Android世界

1.发布你的应用

2.内容提供者

3.加载器

4.同步适配器

5.广播

6.WebView类

7.设置

8.动画

9.APP部件

10.自动测试


书查询(www.shuchaxun.com)本网页唯一编码:
b4b15820a92d13be8a252b7c8261d8fb#8530194bbe750e8b7bc9ef2dfd875a9c#94696034#14493165.zip