第一行代碼 Android(第三版)讀書筆記
第一章 開啟征程(概要)
- 項目結構與目錄:page 17 - page 19
- Log 方法與 Logcat 的完美結合
第二章 Kotlin 語法糖
同《Kotlin 學習筆記》一同食用效果最佳
- 《第一行》中出現的 Kotlin 特性預覽表
主次構造函數 | 參數默認值 | 鍵值對傳參 | 字符串內嵌表達式 |
---|---|---|---|
init {}, constructor () {} | fun xxx(str: String = "") {...} | xxx(str = "...") | "${value}" |
let 函數式 API | Lambda 表達式 | 空指針檢查 | 函數式 API |
---|---|---|---|
obj.let {obj2 -> ...} | {para -> ...}, {it.toString()} | ? ?. !!. ?: | map.maxby {} //Lambda表達式 |
容器初始化 | 數據類 | 單例類 | 循環遍歷 |
---|---|---|---|
listOf(), mapOf(), setOf() | data | object | for-in, until, downTo, step, l...r, 容器遍歷 |
分支控制 | 條件控制 | "不變為先" | 訪問控制 |
---|---|---|---|
when () {... -> ...}, if-else 語句/表達式 | is (instanceof), else | val, var, open class | "public by default" |
第三章 Activity!所見即所得
-
創建 Activity
- 創建和加載布局文件 layout
- 在 AndroidManifest.xml 中注冊Activity
- 編寫 Activity.kt 代碼 (事件綁定,方法重寫等)
-
Activity 通信與切換
- Intent 類
- 顯式切換:
Intent(上下文, 指定Activity 的 Class 類)
- 隱式切換:指定
action
category
,目標將會按照注冊信息中的過濾條件響應 intent。- 過濾條件:
<category> <action> <data>
- 過濾條件:
- 傳參:
.putExtra(), .getStringExtra()
- 啟動方式:
startActivity() //普通啟動
startActivityForResult() //請求結果
- 顯式切換:
- Activity 類 Result 結果
- 設置結果:
setResult()
- 取回結果:
override onActivityResult()
- 設置結果:
- Bundle 類
- 團隊合作時用伴生類“靜態方法”來啟動
- Intent 類
-
Activity 生命周期
-
返回棧
-
思維導圖
-
-
保存信息
- Bundle 類型
onSaveInstanceState()
,var savedInstanceState
-
Activity 啟動模式
- standard 無檢查,直接壓棧
- singleTop 檢查棧頂
- singleTask 解棧恢復
- singleInstance 創建新棧