Android编程权威指南(第4版)
7推荐 收藏
7.0K阅读
图灵程序设计丛书

Android编程权威指南(第4版)

[美]克莉丝汀•马西卡诺,布赖恩•加德纳,比尔•菲利普斯,克里斯•斯图尔特 (作者) 王明发 (译者)
上市销售
●Android开发入门与进阶不二之选
●实战项目引导,全面覆盖Android开发知识点
●使用Kotlin编写,兼容Android 5.0至11.0
●随书附赠Android开发速查表,随用随查
Big Nerd Ranch是美国一家专业的移动开发技术培训机构。本书主要以其Android训练营教学课程为基础,融合了几位作者多年的心得体会,是一本完全面向实战的Android 编程权威指南。全书共32章,详细介绍了七个Android应用的开发过程。通过这些精心设计的应用,读者可掌握很多重要的理论知识和开发技巧,获得宝贵的开发经验。第4版较之前版本做了重大更新,每一章的内容都做了修改;同时,开发语言从Java换成了Kotlin,全面引入了Android Jetpack组件库并开始使用第三方库。
纸质书
¥113.98 ¥139.00

出版信息

  • 书  名Android编程权威指南(第4版)
  • 系列书名图灵程序设计丛书
  • 执行编辑关于本书的内容有任何问题,请联系 张海艳
  • 出版日期2021-03-29
  • 书  号978-7-115-55964-7
  • 定  价139.00 元
  • 页  数538
  • 印刷方式单色
  • 开  本16开
  • 出版状态上市销售

同系列书

  • JavaScript高级程序设计(第4版)

    [美]马特·弗里斯比(Matt Frisbie)   李松峰   译

    本书是JavaScript经典图书的新版。第4版涵盖ECMAScript 2019,全面、深入地介绍了Java...

  • HTTP权威指南

    David Gourley   Brian Totty   Marjorie Sayer   Sailu Reddy   Anshu Aggarwal   陈涓   赵振平   译

    本书是HTTP及其相关核心Web技术方面的权威著作,主要介绍了Web应用程序是如何工作的,核心的因特网协议如何...

  • JavaScript高级程序设计(第3版)

    Nicholas C.Zakas   李松峰   曹力   译

    本书是JavaScript超级畅销书的新版。ECMAScript 5 和HTML5在标准之争中双双胜出,使大量...

  • 计算机科学的基础

    Al Aho   Jeff Ullman   傅尔也   译

    本书全面而详细地阐述了计算机科学的理论基础,从抽象概念的机械化到各种数据模型的建立,用算法、数据抽象等核心思想...

  • Python编程:从入门到实践(第2版)

    埃里克·马瑟斯(Eric Matthes)   袁国忠   译

    本书是针对所有层次Python读者而作的Python入门书。全书分两部分:第一部分介绍用Python编程所必须...

本书特色

专业——源自大名鼎鼎的Big Nerd Ranch训练营培训讲义,该训练营已经为微软、Google、Facebook等行业巨头培养了众多专业人才。
全面——涵盖Android开发必备理论概念和技术知识点,从Android 5.0到Android 11.0都适用。
实用——七个Android应用开发实战项目,传授一线开发经验。
易懂——以循序渐进的方式精心编排章节,一步一步写出Android应用。

初学Android有幸阅读本书早期版本,收获颇丰,尤其是对fragment认识深刻。本书最大的特色是以实战的方式引领大家学习,每每讲到新知识点,都会立刻融入具体的案例,助你充分理解与掌握。

——张鸿洋,wanandroid站长

本书介绍的技术点足够与时俱进,能够帮你跨越学习的初始障碍,是一本大而全的Android入门书,值得常备手边,翻阅学习。

——张涛,Android技术专家,开源实验室博主

《Android编程权威指南(第3版)》堪称经典,新版的升级更是众望所归。强烈推荐移动开发与安全研究人员阅读本书。

——丰生强,《Android软件安全与逆向分析》作者

不像大多数书只是机械地传授知识,本书精心设计了很多应用开发实例,基本涵盖了日常开发所需要的内容,很适合新手入门。此外,本书行文风格轻松,在技术书中比较难得。

——丁志虎,美团Android技术专家

本书基于Kotlin和Jetpack编写,紧跟近年的开发新趋势,章节安排循序渐进,场景实例引人入“码”;代码检查、代码测试和无障碍等章节不仅给初学者启蒙了良好代码设计的重要性,也给图书本身增添了温度。此外,值得一提的是,译文保持了一贯的优良水准,清爽舒畅。

——2BAB,Android高级工程师,《Android构建与架构实战》(写作中)作者

目录

第 1 章 Android开发初体验 1
1.1 Android开发基础 2
1.2 创建Android项目 2
1.3 Android Studio使用导航 6
1.4 用户界面设计 7
1.4.1 视图层级结构 12
1.4.2 部件属性 12
1.4.3 创建字符串资源 13
1.4.4 预览布局 14
1.5 从布局XML到视图对象 16
1.6 部件的实际应用 19
1.6.1 引用部件 20
1.6.2 设置监听器 20
1.7 创建提示消息 22
1.8 使用模拟器运行应用 24
1.9 深入学习:Android编译过程 26
1.10 关于挑战练习 28
1.11 挑战练习:定制toast消息 28
第 2 章 Android与MVC设计模式 29
2.1 创建新类 30
2.2 Android与MVC设计模式 31
2.3 更新视图层 33
2.4 更新控制器层 35
2.5 添加图标资源 38
2.5.1 向项目中添加资源 39
2.5.2 在XML文件中引用资源 41
2.6 屏幕像素密度 41
2.7 在物理设备上运行应用 43
2.8 挑战练习:为TextView添加监听器 45
2.9 挑战练习:添加后退按钮 45
2.10 挑战练习:从按钮到图标按钮 46
第 3 章 activity的生命周期 48
3.1 旋转GeoQuiz应用 48
3.2 activity状态与生命周期回调 49
3.3 日志跟踪理解activity生命周期 51
3.3.1 输出日志信息 51
3.3.2 使用LogCat 53
3.4 activity生命周期如何响应用户操作 54
3.4.1 暂时离开activity 54
3.4.2 结束使用activity 57
3.4.3 旋转activity 58
3.5 设备配置改变与activity生命周期 58
3.6 深入学习:UI刷新与多窗口模式 62
3.7 深入学习:日志记录的级别与函数 62
3.8 挑战练习:禁止一题多答 63
3.9 挑战练习:答题评分 63
第 4 章 UI状态的保存与恢复 64
4.1 引入ViewModel依赖 64
4.2 添加ViewModel 65
4.2.1 ViewModel生命周期与ViewModelProvider 67
4.2.2 向ViewModel添加数据 69
4.3 进程销毁时保存数据 72
4.3.1 覆盖onSaveInstanceState(Bundle)函数 73
4.3.2 保留实例状态与activity记录 76
4.4 ViewModel与保存实例状态 77
4.5 深入学习:Jetpack、AndroidX与架构组件 78
4.6 深入学习:解决问题要彻底 79
第 5 章 Android应用的调试 81
5.1 异常与栈跟踪 82
5.1.1 诊断应用异常 83
5.1.2 记录栈跟踪日志 84
5.1.3 设置断点 85
5.2 Android特有的调试工具 88
5.2.1 使用Android Lint 88
5.2.2 R类的问题 91
5.3 挑战练习:探索布局检查器 92
5.4 挑战练习:探索Android性能分析器 92
第 6 章 第二个activity 93
6.1 创建第二个activity 94
6.1.1 创建新的activity 95
6.1.2 创建新的activity子类 98
6.1.3 在manifest配置文件中声明activity 98
6.1.4 为MainActivity添加CHEAT!按钮 99
6.2 启动activity 100
6.3 activity间的数据传递 102
6.3.1 使用intent extra 102
6.3.2 从子activity 获取返回结果 105
6.4 activity的使用与管理 110
6.5 挑战练习:堵住作弊漏洞 112
6.6 挑战练习:按题记录作弊状态 112
第 7 章 Android SDK版本与兼容 113
7.1 Android SDK版本 113
7.2 Android编程与兼容性问题 114
7.2.1 比较合理的版本 114
7.2.2 SDK最低版本 115
7.2.3 SDK目标版本 116
7.2.4 SDK编译版本 116
7.2.5 安全添加新版本API中的代码 116
7.2.6 JETPACK库 119
7.3 使用Android开发者文档 120
7.4 挑战练习:报告编译版本 122
7.5 挑战练习:限制作弊次数 122
第 8 章 UI fragment与fragment管理器 123
8.1 UI设计的灵活性需求 124
8.2 引入fragment 124
8.3 着手开发CriminalIntent 125
8.4 创建Crime数据类 128
8.5 创建UI fragment 129
8.5.1 定义CrimeFragment的布局 129
8.5.2 创建CrimeFragment类 131
8.6 托管UI fragment 137
8.6.1 定义容器视图 138
8.6.2 向FragmentManager中添加UI fragment 139
8.7 采用fragment的应用架构 143
第 9 章 使用RecyclerView显示列表 145
9.1 添加新Fragment和ViewModel 146
9.2 添加RecyclerView 149
9.3 创建列表项视图布局 151
9.4 ViewHolder实现 153
9.5 使用Adapter填充RecyclerView 155
9.6 循环使用视图 159
9.7 清理绑定 159
9.8 响应点击 160
9.9 深入学习:ListView与GridView 161
9.10 挑战练习:RecyclerView的ViewType 162
第 10 章 使用布局与部件创建用户界面 163
10.1 初识ConstraintLayout布局 164
10.2 图形布局编辑器 165
10.3 使用ConstraintLayout 168
10.3.1 腾出空间 169
10.3.2 添加部件 171
10.3.3 约束的工作原理 174
10.3.4 编辑属性 175
10.3.5 动态设置列表项 179
10.4 深入学习布局属性 180
10.5 深入学习:边距与内边距 182
10.6 深入学习:ConstraintLayout的发展动态 183
10.7 挑战练习:日期格式化 183
第 11 章 数据库与Room库 185
11.1 Room架构组建库 186
11.2 创建数据库 187
11.2.1 定义实体 187
11.2.2 创建数据库类 187
11.3 定义数据库访问对象 189
11.4 使用仓库模式访问数据库 191
11.5 测试数据库访问 193
11.6 应用线程 196
11.7 使用LiveData 198
11.8 挑战练习:解决Schema警告 203
11.9 深入学习:单例 204
第 12 章 Fragment Navigation 206
12.1 单Activity多Fragment 206
12.1.1 Fragment回调接口 207
12.1.2 替换fragment 209
12.2 Fragment argument 211
12.2.1 将argument附加到fragment 212
12.2.2 获取argument 213
12.3 使用LiveData数据转换 214
12.4 更新数据库 217
12.4.1 使用executor 218
12.4.2 数据库写入与fragment生命周期 219
12.5 深入学习:为何要用Fragment Argument 220
12.6 深入学习:Navigation架构组件库 221
12.7 挑战练习:实现高效的RecyclerView刷新 222
第 13 章 对话框 223
13.1 创建DialogFragment 224
13.2 fragment间的数据传递 227
13.2.1 传递数据给DatePickerFragment 228
13.2.2 返回数据给CrimeFragment 230
13.3 挑战练习:时间选择对话框 232
第 14 章 应用栏 233
14.1 AppCompat默认应用栏 234
14.2 应用栏菜单 235
14.2.1 在XML文件中定义菜单 235
14.2.2 创建菜单 237
14.2.3 响应菜单项选择 240
14.3 使用Android Asset Studio 242
14.4 深入学习:应用栏、操作栏与工具栏 244
14.5 深入学习:AppCompat版应用栏 246
14.6 挑战练习:RecyclerView空视图 246
第 15 章 隐式intent 247
15.1 添加按钮部件 248
15.2 添加嫌疑人信息至模型层 249
15.3 使用格式化字符串 250
15.4 使用隐式intent 251
15.4.1 隐式intent的组成 252
15.4.2 发送消息 253
15.4.3 获取联系人信息 256
15.4.4 检查可响应任务的activity 261
15.5 挑战练习:又一个隐式intent 263
第 16 章 使用intent拍照 264
16.1 布置照片 264
16.2 文件存储 267
16.2.1 使用FileProvider 268
16.2.2 指定照片存放位置 269
16.3 使用相机intent 270
16.4 缩放和显示位图 273
16.5 功能声明 277
16.6 挑战练习:优化照片显示 278
16.7 挑战练习:优化缩略图加载 278
第 17 章 应用本地化 279
17.1 资源本地化 279
17.1.1 默认资源 282
17.1.2 检查资源本地化完成情况 283
17.1.3 区域修饰符 284
17.2 配置修饰符 285
17.2.1 可用资源优先级排定 286
17.2.2 多重配置修饰符 288
17.2.3 寻找最匹配的资源 289
17.3 测试备选资源 290
17.4 深入学习:确定设备屏幕尺寸 290
17.5 挑战练习:日期显示本地化 291
第 18 章 Android辅助功能 292
18.1 TalkBack 292
18.1.1 点击浏览 294
18.1.2 线性浏览 295
18.2 实现非文字型元素可读 297
18.2.1 添加内容描述 297
18.2.2 实现部件可聚焦 300
18.3 提升辅助体验 301
18.4 深入学习:使用辅助功能扫描器 302
18.5 挑战练习:优化列表项 305
18.6 挑战练习:补全上下文信息 305
18.7 挑战练习:事件主动通知 306
第 19 章 数据绑定与MVVM 307
19.1 为何要用MVVM架构 308
19.2 MVVM View Model与Jetpack ViewModel 308
19.3 创建BeatBox应用 308
19.4 实现简单的数据绑定 309
19.5 导入assets 312
19.6 处理assets 314
19.7 使用assets 316
19.8 绑定数据 318
19.8.1 创建视图模型 320
19.8.2 绑定至视图模型 321
19.8.3 绑定数据观察 323
19.9 深入学习:数据绑定再探 325
19.9.1 lambda表达式 325
19.9.2 更多语法糖 326
19.9.3 BindingAdapter 326
19.10 深入学习:LiveData和数据绑定 327
第 20 章 音频播放与单元测试 329
20.1 创建SoundPool 329
20.2 访问Assets 330
20.3 加载音频文件 330
20.4 播放音频 332
20.5 测试依赖 332
20.6 创建测试类 333
20.7 配置测试类 335
20.8 编写测试函数 336
20.9 数据绑定回调 341
20.10 释放音频 342
20.11 深入学习:整合测试 343
20.12 深入学习:模拟对象与测试 344
20.13 挑战练习:播放进度控制 345
20.14 挑战练习:设备旋转问题 346
第 21 章 样式与主题 347
21.1 颜色资源 348
21.2 样式 348
21.3 主题 351
21.4 添加主题颜色 353
21.5 覆盖主题属性 354
21.6 修改按钮属性 358
21.7 深入学习:样式继承拾遗 361
21.8 深入学习:引用主题属性 362
第 22 章 XML drawable 363
22.1 统一按钮样式 364
22.2 shape drawable 365
22.3 state list drawable 367
22.4 layer list drawable 368
22.5 深入学习:为什么要用XML drawable 370
22.6 深入学习:使用mipmap图像 370
22.7 深入学习:使用9-patch图像 371
22.8 挑战练习:按钮主题 377
第 23 章 深入学习intent和任务 378
23.1 创建NerdLauncher项目 379
23.2 解析隐式intent 380
23.3 在运行时创建显式intent 385
23.4 任务与回退栈 386
23.4.1 在任务间切换 387
23.4.2 启动新任务 388
23.5 用NerdLauncher当主屏幕 391
23.6 深入学习:进程与任务 392
23.7 深入学习:并发文档 394
23.8 挑战练习:应用图标 397
第 24 章 HTTP 与后台任务 398
24.1 创建PhotoGallery应用 399
24.2 Retrofit网络连接基本 402
24.2.1 定义Retrofit API接口 403
24.2.2 构建Retrofit对象并创建API实例 403
24.2.3 执行网络请求 405
24.2.4 获取网络使用权限 407
24.2.5 使用仓库模式联网 408
24.3 从Flickr 获取JSON数据 411
24.4 应对设备配置改变 418
24.5 在RecyclerView里显示结果 421
24.6 深入学习:其他JSON数据解析器和数据格式 423
24.7 深入学习:撤销网络请求 423
24.8 深入学习:管理依赖 424
24.9 挑战练习:自定义Gson反序列化器 425
24.10 挑战练习:分页 426
24.11 挑战练习:动态调整网格列 426
第 25 章 Looper、Handler和HandlerThread 427
25.1 配置RecyclerView以显示图片 427
25.2 准备下载数据 430
25.3 批量下载缩略图 431
25.4 创建后台线程 431
25.4.1 创建生命周期感知线程 432
25.4.2 启停HandlerThread 435
25.5 Message与message handler 436
25.5.1 剖析Message 438
25.5.2 剖析Handler 438
25.5.3 使用handler 440
25.5.4 传递handler 443
25.6 观察视图的生命周期 446
25.7 保留fragment 450
25.7.1 设备旋转与保留fragment 450
25.7.2 是否保留fragment 452
25.8 深入学习:解决图片下载问题 452
25.9 深入学习:StrictMode 453
25.10 挑战练习:观察视图LifecycleOwner的LiveData 454
25.11 挑战练习:优化ThumbnailDownloader 454
25.12 挑战练习:预加载以及缓存 454
第 26 章 搜索 456
26.1 搜索Flickr网站 457
26.2 使用SearchView 460
26.3 使用sharedpreferences实现轻量级数据存储 464
26.4 优化应用 467
26.5 用Android KTX编辑SharedPreferences 468
26.6 挑战练习:优化PhotoGallery应用 469
第 27 章 WorkManager 470
27.1 创建Worker类 470
27.2 调度工作 471
27.3 检查新图片 473
27.4 通知用户 476
27.5 服务的用户控制 481
第 28 章 broadcast intent 486
28.1 普通intent与broadcast intent 486
28.2 过滤前台通知 487
28.2.1 发送broadcast intent 487
28.2.2 创建并登记standalone receiver 488
28.2.3 使用私有权限限制broadcast 489
28.2.4 创建并登记动态receiver 491
28.2.5 使用有序broadcast收发数据 493
28.3 receiver与长时运行任务 497
28.4 深入学习:本地事件 497
28.4.1 使用EventBus 498
28.4.2 使用RxJava 499
28.5 深入学习:受限的Broadcast Receiver 499
28.6 深入学习:探测fragment的状态 500
第 29 章 网页浏览 501
29.1 最后一段Flickr数据 501
29.2 简单方式:使用隐式intent 503
29.3 较难的方式:使用WebView 504
29.4 处理WebView的设备旋转问题 511
29.5 WebView与定制UI 512
29.6 深入学习:注入JavaScript对象 512
29.7 深入学习:WebView升级 513
29.8 深入学习:Chrome Custom Tabs 513
29.9 挑战练习:使用回退键浏览历史网页 514
第 30 章 定制视图与触摸事件 515
30.1 创建DragAndDraw项目 515
30.2 创建定制视图 516
30.3 处理触摸事件 518
30.4 onDraw(Canvas)函数内的图形绘制 521
30.5 深入学习:GestureDetector 523
30.6 挑战练习:设备旋转问题 523
30.7 挑战练习:旋转矩形框 524
30.8 挑战练习:辅助功能支持 524
第 31 章 属性动画 525
31.1 建立场景 525
31.2 简单属性动画 527
31.2.1 视图转换属性 530
31.2.2 使用不同的interpolator 531
31.2.3 色彩渐变 532
31.3 播放多个动画 534
31.4 深入学习:其他动画API 536
31.4.1 传统动画工具 536
31.4.2 转场 536
31.5 挑战练习 536
第 32 章 编后语 537
32.1 终极挑战 537
32.2 插个广告 537
32.3 致谢 538

作者介绍

克莉丝汀·马西卡诺(Kristin Marsicano),Big Nerd Ranch高级工程经理、讲师、Android开发者。她对学习、应用开发以及二者的交集充满热情。闲暇时,克莉丝汀喜欢跑步、弹尤克里里,或与孩子一起搭乐高积木。

布赖恩•加德纳(Brian Gardner),Big Nerd Ranch讲师、Android开发者。他是个学习狂,目前正在深入研究最新的Android库,此外还在攻读佐治亚理工学院的机器学习硕士学位。闲暇时,布赖恩喜欢绘画、烘焙和旅行。

比尔•菲利普斯(Bill Phillips),Instagram软件工程师,前Big Nerd Ranch讲师。他与人合作开发了广受好评的Android训练营培训课程,并为之编写教材(包括本书的第1版和第2版)。比尔非常懂得生活的平衡之道,能把工作、音乐创作和音频硬件项目这些事安排得井井有条。

克里斯•斯图尔特(Chris Stewart),Big Nerd Ranch工程副总裁,前Android训练营讲师。他致力于不断取得进步和精进技能。工作之余,克里斯喜欢远足和旅行。

【译者简介】

毕业于华东理工大学。软件开发及项目管理者,拥有十余年软件开发及项目管理经验。除了翻译本书前三版之外,另译有《Kotlin编程权威指南》。

相关文章

  • 图灵小悦 1推荐

    1 月书讯 | 开年多本重点书

    2021 新年第 1 个月,图灵推出 9 本新书!覆盖人工智能、深度学习、数据分析、Linux、Android、shell、微服务网关、青少年思维训练等多个领域。这些书预计春节前后陆续上架,敬请期待。 《人工智能简史(第 2 版)》 《Python 深度学习入门:从零…...

  • 请问该书第4版大概何时能上市,非常期待!
    tyf-sh  发表于 2020-09-22 22:01:41
    推荐
    • 春节过后哈

      英子  发表于 2020-12-31 10:05:49
    • @英子 会出电子版吗?

      邱茂源  发表于 2021-02-19 15:29:09
    • @英子 另外,出版之后希望得到通知,尽早购买。请问如何订阅这本书的出版状态?

      邱茂源  发表于 2021-02-19 15:31:27
    • @邱茂源 你好,出版后会第一时间在微信发布图书上架文章。不好意思,这本书外方暂时没有授权出版电子版。初步预计 在 3 月中旬之前上架。

      英子  发表于 2021-02-19 15:39:13
    • @英子 谢谢,请问微信是指微信公zh吗?

      邱茂源  发表于 2021-02-19 15:45:47
    • @邱茂源 是的

      英子  发表于 2021-02-19 16:03:30
    • @英子 好的

      邱茂源  发表于 2021-02-19 19:54:00
  • 第4版 有讲到Android P(9.0)? 太好了!有讲到AS 3.5的内容吗?
    atehdfgsdfg  发表于 2020-02-01 14:39:44
    推荐
    • 9.0 是,3.5 不是,是 3.3。

      英子  发表于 2020-12-31 10:15:23
  • 请问大概什么时候发售?
    41CC3681D3B2EF7B  发表于 2020-02-27 13:48:38
    推荐
    • 正在翻译中,预计下半年出版。

      傅志红  发表于 2020-02-27 16:51:16
  • 這個版本以KOTLIN 來編寫的嗎
    feifeiwoai  发表于 2020-05-18 11:18:50
    推荐
    • 第4版是一次大更新,每一章的内容都做了修改。要说最大的变化,当数应用开发语言从Java换成了Kotlin。另一个重大改变是全面引入了Android Jetpack组件库。

      傅志红  发表于 2020-05-18 12:12:29
    • @傅志红 这本书Android入门太牛了,膜拜了,再回头看都有好多收获,今年年初都看见他们社区出第四版了,希望编辑早点催催出版,亚马逊好像都有英文版卖了,辛苦了

      再闻echo  发表于 2020-07-07 00:54:25
  • 厉害了 kotlin版本...
    lucasleelz  发表于 2020-06-23 21:49:07
    推荐
  • 老板,还需要多久才能翻译完呀
    睡觉了小怪兽  发表于 2020-07-15 23:35:59
    推荐
    • 已完成翻译,抓紧编辑中

      haoyingneu  发表于 2020-07-16 10:35:36
    • @haoyingneu 要不要来一个抢读版。

      lucasleelz  发表于 2020-08-27 10:20:57
  • 还没上市吗?android 11 都发布了😓
    wowo2000  发表于 2020-11-16 18:25:58
    推荐
    • 您好,本书在抓紧编辑中。

      张海艳  发表于 2020-11-17 16:57:34
    • @张海艳 不咋抓紧呐,编辑半年了

      binbinyouli  发表于 2020-11-23 16:51:02
    • @binbinyouli 其实挺抓紧的 ,啊~~~~~

      英子  发表于 2020-12-29 17:10:31
  • 啊请问这本书还没有编辑完吗
    shawshuai  发表于 2020-12-09 12:05:08
    推荐
    • 排版中,好书多磨哈~

      英子  发表于 2020-12-29 17:09:05
  • 编辑的速度太慢了吧?什么时候能出呢?
    coolfire1989  发表于 2020-12-14 10:42:18
    推荐
    • 争取春节一过就出来~~~ 好书多磨

      英子  发表于 2020-12-29 17:09:31
  • 报个到···年底了,还没上市吗?
    周阳光  发表于 2020-12-24 13:57:30
    推荐
    • 春节过后昂,别着急啊,编辑更着急。

      英子  发表于 2020-12-29 17:09:47
  • 这本书有电子版吗?
    InC  发表于 2021-02-08 17:10:34
    推荐
    • 不好意思,本书没有电子版。

      张海艳  发表于 2021-02-14 18:19:28
    • @张海艳 没有电子版???只有纸质版?

      41CC3681D3B2EF7B  发表于 2021-02-18 14:12:37
    • @41CC3681D3B2EF7B 电子版正在授权流程中,但比纸质书会晚一些。纸质书 4 月初上架。

      英子  发表于 2021-03-24 23:07:15
  • 目录这么久还没有弄好吗?
    夜泉  发表于 2021-03-19 12:51:34
    推荐
    • 好了,等着,快上架了

      英子  发表于 2021-03-24 23:06:25
  • 3月12日我就订购了预售,请问什么时候可以发货呢,已经两周了。。。能不能给个预计时间呢
    Elvis1024  发表于 2021-03-26 11:10:16
    推荐
    • 您好,本书已经印刷完毕,正在入库。接下来就可以给您发货了。

      张海艳  发表于 2021-03-26 16:20:51
    • @张海艳 好的,谢谢!
      期待早点拿到这本书开始学习

      Elvis1024  发表于 2021-03-29 16:40:34
  • 您好,已经预购了此书,不知道多久能收到
    sausy  发表于 2021-03-29 10:22:11
    推荐
    • 您好,本书已经上市销售,应该很快就会给您发货了。

      张海艳  发表于 2021-03-29 13:03:10
    • @张海艳 好的,感谢

      sausy  发表于 2021-03-29 13:04:41
  • 第 45 页那个练习,给 PREV 按钮设置 android:drawableStart="@drawable/arrow_left",箭头就不显示;设置 android:drawableLeft="@drawable/arrow_left" 它就能显示。但是我搜了一下这两个的区别,因为不同国家的文字阅读方向不同,似乎都建议用 Start 替代 Left,但为啥用 Start 它就不显示,这点暂时没明白。
    邱茂源  发表于 2021-04-06 15:48:09
    推荐