Lambda编程,Activity和Intent ——客户端开发学习 | 青训营笔记

94 阅读2分钟

image.png

这是我参与「第四届青训营 」笔记创作活动的的第3天

我使用的教材是《第一行代码》,感谢开放的互联网。

本篇内容包含:Lambda编程;Activity的布局,绑定,注册;Intent交互方式中页面,程序跳转,以及数据传递。


【lambda

集合的创建与遍历

listOf()创建不可变集合

set集合不能存放重复元素

map键值对

集合的函数式API

lambda语法

{参数名1:参数类型, 参数名2:参数类型 ->函数体}

空指针检查


【看得见的Activity——一种包含用户界面的组件

创建布局

xml中对于标识符的定义和引用:

@+id/id_name

@id/id_name

image.png

加载布局

image.png

注册Activity

设置主活动并且在顶部写标题 image.png

Screenshot_20220729_214754_com.example.activityte.jpg

一些其他的尝试: Toast

image.png

Screenshot_20220729_215444_com.example.activityte.jpg

声明按键变量,并在click监视器中部署关闭操作

(开发时未引入kotlin-andriod-extensions插件)

image.png

【Intent:安卓各组件间的一种交互方式

用途:启动Activity/Servive;发送广播...

每个intent只能指定一个action,但可以指定多个category

显式:

Intent(Context packageContext, Class<?> cls)

Context packageContext:上下文

Class<?> cls:想要启动的目标Activity

startActivity(intent):在启动Activity的方法中传进一个intent“桥”,这个参数是我们定义的在怎样的情景下进入目标Activity

隐式

Intent("action")

也可以进行程序间跳转:

image.png

第一次程序崩溃:

image.png

Activity下intent-filter>下标签:

  • action:绑定intent
  • category:更加细分
  • data:指定当前Activity能够响应的数据
    • scheme: 协议
    • host:主机
    • port:端口
    • path
    • mimeType:可以处理的数据类型

Activity间传数据


所谓语法糖

在对类对象无法直接操作的属性赋值,可以直接使用类似objectName.element = value的形式,其实本质上是简化了操作,机器自动使用了classSet()方法进行传参,并不是直接赋值。