activity | 青训营笔记

113 阅读3分钟

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

Activity

定义:Activity是一种可以包含用户界面的组件,主要用于和用户进行交互。

创建

勾选Generate Layout File表示会自动为FirstActivity创建一个对应的布局文件,勾选 Launcher Activity表示会自动将FirstActivity设置为当前项目的主Activity,勾选Backwards Compatibility表示会为项目启用向下兼容旧版系统的模式,这个选项要勾上。 点击“Finish”完成创建。

重写

项目中的任何Activity都应该重写onCreate()方法,而目前我们创建的Activity 中已经重写了这个方法,这是Android Studio自动帮我们完成的

布局

创建Layout文件夹下的xml文件进行布局设计。

注册

所有的Activity都要在AndroidManifest.xml中进行注册才能生效。Activity的注册声明要放在标签内,这里是通过标签来对Activity进行注册的。在过去,当创建Activity或其他系统组件时,很多人会忘记要去Android Manifest.xml中进行注册,从而导致程序运行崩溃,很显然Android Studio在这方面做得更加人性化,会自动注册。

配置主activity

配置主Activity 的方法就是在标签的内部加入 标签,并在这个标签里添加和这两句声明即可。

TOAST

Toast是Android系统提供的一种非常好的提醒方式,在程序中可以使用它将一些短小的信息通 知给用户,这些信息会在一段时间后自动消失,并且不会占用任何屏幕空间。

Menu

手机毕竟和电脑不同,它的屏幕空间非常有限,因此充分地利用屏幕空间在手机界面设计中就 显得非常重要了。如果你的Activity中有大量的菜单需要显示,界面设计就会比较尴尬,因为仅 这些菜单就可能占用将近三分之一的屏幕空间,Android给我们提供 了一种方式,可以让菜单都能得到展示,还不占用任何屏幕空间。 首先在res目录下新建一个menu文件夹,右击res目录→New→Directory,输入文件夹 名“menu”,点击“OK”。接着在这个文件夹下新建一个名叫“main”的菜单文件,右击menu文件夹→New→Menu resource file

使用Intent在Activity之间穿梭

定义:Intent是Android程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执 行的动作,还可以在不同组件之间传递数据。Intent一般可用于启动Activity、启动Service以及发送广播等场景。

Intent大致可以分为两种:显式Intent和隐式Intent。

Intent有多个构造函数的重载,其中一个是Intent(Context packageContext, Class cls)。这个构造函数接收两个参数:第一个参数Context要求提供一个启动Activity的上下 文;第二个参数Class用于指定想要启动的目标Activity,通过这个构造函数就可以构建出 Intent的“意图”。

Activity类中提供了一个 startActivity()方法,专门用于启动Activity,它接收一个Intent参数,这里我们将构建好 的Intent传入startActivity()方法就可以启动目标Activity了。

button1.setOnClickListener { val intent = Intent(this, SecondActivity::class.java) startActivity(intent) }

首先构建了一个Intent对象,第一个参数传入this也就是FirstActivity作为上下文,第二 个参数传入SecondActivity::class.java作为目标Activity,这样我们的“意图”就非常明 显了,即在FirstActivity的基础上打开SecondActivity。注意,Kotlin中 SecondActivity::class.java的写法就相当于Java中SecondActivity.class的写法。 接下来再通过startActivity()方法执行这个Intent就可以了。

使用隐式Intent

相比于显式Intent,隐式Intent则含蓄了许多,它并不明确指出想要启动哪一个Activity,而是 指定了一系列更为抽象的action和category等信息,然后交由系统去分析这个Intent,并帮 我们找出合适的Activity去启动。

较为复杂,可以参考《第一行代码》