《第一行代码:Android 第三版》读书选粹 (一)

  • 更好的阅读体验请客观移步至个人博客:🦉William@blog(站点右上角有关键字查询可以查看当前文章。)

《第一行代码:Android》读书笔记 (一)

第一章 开启征程(概要)

  • 项目结构与目录:page 17 - page 19
  • Log 方法与 Logcat 的完美结合

第二章 Kotlin 语法糖

同《Kotlin 学习笔记》一同食用最佳

《第一行》中出现的 Kotlin 特性预览表

主次构造函数参数默认值键值对传参字符串内嵌表达式
init {}, constructor () {}fun xxx(str: String = "") {...}xxx(str = "...")"${value}"
标准函数Lambda 表达式空指针检查函数式 API
let, run, apply, with{para -> ...}, {it.toString()}? ?. !!. ?:map.maxby {/*Lambda*/}
容器初始化数据类单例类循环遍历
listOf(), mapOf(), setOf()dataobjectfor-in, until, downTo, step, l...r,容器遍历
分支控制条件控制“不变为先”访问控制
when () {... -> ...}, if-else 语句/表达式is (instanceof), elseval, var, open class"public by default"
类型强转repeat 函数运算符重载延迟初始化
as, as?repeat(/*num*/) {/*Lambda*/}operator 关键字lateinit
初始化判断密封类(与when语句一同使用)扩展函数无用参数
::($变量名).isInitializedsealed classfun ClassName.funcName(...) : ... {}下划线_
函数类型高阶函数内联函数可变参数
ClassName.(paraType, ...) -> returnType接受/返回函数类型/Lambda表达式的函数inline noinline crossinlinevararg
Pair 类型Smart Cast 自动转型泛型委托
A to B泛型is Type 判断后实例自动向下转换类型<T>类委托、属性委托

第三章 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 类
    • 团队合作时用伴生类“静态方法”来启动
  • Activity 生命周期

    • 返回栈的概念

    • 思维导图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w3XKYefA-1599968430391)(https://raw.githubusercontent.com/BAIDI-coder/PicGo/master/img/image-20200529100001541.png)]

  • 保存信息
    • Bundle 类型
    • onSaveInstanceState()var savedInstanceState
  • Activity 启动模式
    • standard 无检查,直接压栈
    • singleTop 检查栈顶
    • singleTask 解栈恢复
    • singleInstance 创建新栈

第四章 UI!! 门面功夫 😃

控件 Widget

  • 基本控件:TextView,EditView,Button,……
  • 自定义控件:编写class(注入布局,绑定事件) → \rightarrow xml注册引入自定义控件 → \rightarrow 引入控件
  • 高级一点的控件:ListVIew, RecyclerView …

基本原理撇清楚

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5eVZRu23-1694164791815)(https://img-service.csdnimg.cn/img_convert/d1f000d72461c1e2fe160cb340006793.png)]

  • Inflater 的作用:将xml格式的布局文件解析转化成View的实例
  • findViewById() 返回布局中指定id的View实例, 在Activity类中直接使用findViewById()相当于在当前Activitiy所加载的布局中寻找对应的view,而使用view.findViewById()则指定了寻找的区域是view内

留意Kotlin自动类型推导机制的使用场合,方法

*第五章 手机平板要兼顾,探究Fragment

学习内容:Frag 生命周期,Frag 动态加载布局

的区域是view内

留意Kotlin自动类型推导机制的使用场合,方法

*第五章 手机平板要兼顾,探究Fragment

学习内容:Frag 生命周期,Frag 动态加载布局

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值