Kotlin从零到精通Android开发
作者:欧阳燊
出版社:清华大学出版社
出版时间:2018-03-01
ISBN:9787302498148
定价:¥79.00
目 录
第1章 搭建Kotlin开发环境 1
1.1 Kotlin与Android开发的关系 1
1.1.1 Kotlin语言简介 1
1.1.2 Android Studio的官方开发语言 2
1.2 Kotlin开发工具 2
1.2.1 安装Android Studio 2
1.2.2 启动Android Studio 4
1.2.3 创建Kotlin工程 5
1.2.4 新建Kotlin文件 8
1.3 SDK安装与插件升级 10
1.3.1 安装最新版SDK 10
1.3.2 升级Gradle插件 11
1.3.3 升级Kotlin插件 12
1.4 Kotlin简单配置 14
1.4.1 调整Kotlin编译配置 14
1.4.2 修改编译配置文件 15
1.4.3 Java代码转Kotlin代码 16
1.5 Kotlin相关技术 18
1.5.1 Kotlin代码与Java代码PK 18
1.5.2 Anko库 21
1.5.3 Lambda表达式 22
1.6 小结 23
第2章 数据类型 24
2.1 基本数据类型 24
2.1.1 基本类型的变量声明 24
2.1.2 简单变量之间的转换 25
2.2 数组 26
2.2.1 数组变量的声明 27
2.2.2 数组元素的操作 28
2.3 字符串 29
2.3.1 字符串与基本类型的转换 29
2.3.2 字符串的常用方法 29
2.3.3 字符串模板及其拼接 30
2.4 容器 31
2.4.1 容器的基本操作 31
2.4.2 集合Set/MutableSet 32
2.4.3 队列List/MutableList 34
2.4.4 映射Map/MutableMap 36
2.5 小结 38
第3章 控制语句 39
3.1 条件分支 39
3.1.1 简单分支 39
3.1.2 多路分支 40
3.1.3 类型判断 42
3.2 循环处理 43
3.2.1 遍历循环 44
3.2.2 条件循环 45
3.2.3 跳出多重循环 46
3.3 空安全 48
3.3.1 字符串的有效性判断 48
3.3.2 声明可空变量 49
3.3.3 校验空值的运算符 50
3.4 等式判断 52
3.4.1 结构相等 52
3.4.2 引用相等 53
3.4.3 s和in 55
3.5 小结 57
第4章 函数运用 58
4.1 函数的基本用法 58
4.1.1 与Java声明方式的区别 58
4.1.2 输入参数的格式 59
4.1.3 输出参数的格式 60
4.2 输入参数的变化 62
4.2.1 默认参数 62
4.2.2 命名参数 63
4.2.3 可变参数 64
4.3 几种特殊函数 66
4.3.1 泛型函数 66
4.3.2 内联函数 67
4.3.3 简化函数 68
4.3.4 尾递归函数 69
4.3.5 高阶函数 69
4.4 增强系统函数 71
4.4.1 扩展函数 71
4.4.2 扩展高阶函数 72
4.4.3 日期时间函数 73
4.4.4 单例对象 75
4.5 小结 77
第5章 类和对象 78
5.1 类的构造 78
5.1.1 类的简单定义 78
5.1.2 类的构造函数 79
5.1.3 带默认参数的构造函数 81
5.2 类的成员 83
5.2.1 成员属性 83
5.2.2 成员方法 86
5.2.3 伴生对象 87
5.2.4 静态属性 88
5.3 类的继承 89
5.3.1 开放性修饰符 89
5.3.2 普通类继承 91
5.3.3 抽象类 93
5.3.4 接口 94
5.3.5 接口代理 96
5.4 几种特殊类 99
5.4.1 嵌套类 100
5.4.2 内部类 100
5.4.3 枚举类 101
5.4.4 密封类 103
5.4.5 数据类 104
5.4.6 模板类 105
5.5 小结 107
第6章 Kotlin使用简单控件 108
6.1 使用按钮控件 108
6.1.1 按钮Button 108
6.1.2 复选框CheckBox 111
6.1.3 单选按钮RadioButton 112
6.2 使用页面布局 114
6.2.1 线性布局LinearLayout 114
6.2.2 相对布局RelativeLayout 118
6.2.3 约束布局ConstraintLayout 119
6.3 使用图文控件 124
6.3.1 文本视图TextView 124
6.3.2 图像视图ImageView 127
6.3.3 文本编辑框EditText 128
6.4 Activity活动跳转 130
6.4.1 传送配对字段数据 130
6.4.2 传送序列化数据 132
6.4.3 跳转时指定启动模式 134
6.4.4 处理返回数据 137
6.5 实战项目:电商App的登录页面 138
6.5.1 需求描述 138
6.5.2 开始热身:提醒对话框AlertDialog 139
6.5.3 控件设计 141
6.5.4 关键代码 141
6.6 小结 144
第7章 Kotlin操纵复杂控件 145
7.1 使用视图排列 145
7.1.1 下拉框Spinner 145
7.1.2 列表视图ListView 149
7.1.3 网格视图GridView 154
7.1.4 循环视图RecyclerView 156
7.2 使用材质设计MaterialDesign 165
7.2.1 协调布局CoordinatorLayout 165
7.2.2 工具栏Toolbar 167
7.2.3 应用栏布局AppBarLayout 169
7.2.4 可折叠工具栏布局CollapsingToolbarLayout 173
7.2.5 仿支付宝首页的头部伸缩特效 177
7.3 实现页面切换 181
7.3.1 翻页视图ViewPager 182
7.3.2 碎片Fragment 184
7.3.3 标签布局TabLayout 187
7.4 广播收发Broadcast 190
7.4.1 收发临时广播 191
7.4.2 接收系统广播 194
7.5 实战项目:电商App的商品频道 196
7.5.1 需求描述 196
7.5.2 开始热身:下拉刷新布局SwipeRefreshLayout 197
7.5.3 控件设计 201
7.5.4 关键代码 201
7.6 小结 203
第8章 Kotlin进行数据存储 205
8.1 使用共享参数SharedPreferences 205
8.1.1 共享参数读写模板Preference 205
8.1.2 属性代理等黑科技 208
8.1.3 实现记住密码功能 210
8.2 使用数据库SQLite 211
8.2.1 数据库帮助器SQLiteOpenHelper 211
8.2.2 更安全的ManagedSQLiteOpenHelper 213
8.2.3 优化记住密码功能 220
8.3 文件I/O操作 222
8.3.1 文件保存空间 222
8.3.2 读写文本文件 224
8.3.3 读写图片文件 225
8.3.4 遍历文件目录 227
8.4 Application全局变量 228
8.4.1 Application单例化 228
8.4.2 利用Application实现全局变量 231
8.5 实战项目:电商App的购物车 232
8.5.1 需求描述 232
8.5.2 开始热身:选项菜单OptionsMenu 233
8.5.3 控件设计 235
8.5.4 关键代码 236
8.6 小结 240
第9章 Kotlin自定义控件 242
9.1 自定义普通视图 242
9.1.1 构造对象 242
9.1.2 测量尺寸 245
9.1.3 绘制部件 249
9.2 自定义简单动画 252
9.2.1 任务Runnable 252
9.2.2 进度条ProgressBar 255
9.2.3 自定义文本进度条 257
9.2.4 实现进度条动画 258
9.3 自定义通知栏 259
9.3.1 通知推送Notification 260
9.3.2 大视图通知 262
9.3.3 三种特殊的通知类型 265
9.3.4 远程视图RemoteViews 269
9.3.5 自定义折叠式通知 272
9.4 Service服务启停 274
9.4.1 普通方式启动服务 274
9.4.2 绑定方式启动服务 277
9.4.3 推送服务到前台 279
9.5 实战项目:电商App的生鲜团购 283
9.5.1 需求描述 283
9.5.2 开始热身:震动器Vibrator 284
9.5.3 控件设计 287
9.5.4 关键代码 287
9.6 小结 289
第10章 Kotlin实现网络通信 291
10.1 多线程技术 291
10.1.1 大线程Thread与消息传递 291
10.1.2 进度对话框ProgressDialog 295
10.1.3 异步任务doAsync和doAsyncResult 297
10.2 访问HTTP接口 300
10.2.1 移动数据格式JSON 301
10.2.2 JSON串转数据类 303
10.2.3 HTTP接口调用 304
10.2.4 HTTP图片获取 306
10.3 文件下载操作 308
10.3.1 下载管理器DownloadManager 308
10.3.2 自定义文本进度圈 313
10.3.3 在页面上动态显示下载进度 316
10.4 ContentProvider内容提供 319
10.4.1 内容提供器ContentProvider 319
10.4.2 内容解析器ContentResolver 322
10.4.3 内容观察器ContentObserver 325
10.5 实战项目:电商App的自动升级 329
10.5.1 需求描述 329
10.5.2 开始热身:可变字符串SpannableString 330
10.5.3 控件设计 333
10.5.4 关键代码 334
10.6 小结 337