Activity是什么

Activity用于提供可视化用户界面的组件,可以与用户进行交互来完成某项任务,一个应用程序中可以包含零个或多个活动

 

Activity的创建 

首先将左侧的Active Tool Window切换为Android

Mainactivity studio 在哪里android android studio的activity在哪_xml文件

 

接下来在java目录下的com.example.myapplication下创建一个新的empty activity

 

Mainactivity studio 在哪里android android studio的activity在哪_ide_02

 

勾选上Generate a Layout File就会自动生成该活动对应的布局文件

Mainactivity studio 在哪里android android studio的activity在哪_ide_03

 

另外,所有的Activity都需要在manifest下的AndroidManifest文件下进行注册

不过无需手动进行注册,在Activity被创建的同时,已经自动完成了

Mainactivity studio 在哪里android android studio的activity在哪_xml文件_04

 

Menu的使用

在res目录下新建一个名为menu的目录

Mainactivity studio 在哪里android android studio的activity在哪_ide_05

 

在menu目录下新建一个menu文件

Mainactivity studio 在哪里android android studio的activity在哪_ide_06

 

在menu的xml文件中配置两个选项卡

Mainactivity studio 在哪里android android studio的activity在哪_xml文件_07

 

接着回到MainActivity中重新onCreateOptionMenu()方法

可以通过使用快捷键Ctrl+O来选择要重写的功能

Mainactivity studio 在哪里android android studio的activity在哪_ide_08

 

运行效果如图

 

Mainactivity studio 在哪里android android studio的activity在哪_xml文件_09

 

这时点击这些选项卡是得不到任何反馈的

可以通过toast来显示一些文本

makeText里的第一个参数是上下文,第二个是显示内容,第三个是显示时长

Mainactivity studio 在哪里android android studio的activity在哪_java_10

 

Mainactivity studio 在哪里android android studio的activity在哪_xml文件_11

Activity的跳转

这里可以进行打印日志操作,从而更好的观察Activity的跳转

在主活动的onCreate方法中添加

Mainactivity studio 在哪里android android studio的activity在哪_ide_12

 

 可以在下面的logcat窗口中看到打印内容

Mainactivity studio 在哪里android android studio的activity在哪_ide_13

 

创建一个新的Activity,作为一会跳转的目标

Mainactivity studio 在哪里android android studio的activity在哪_ide_14

并为这个Activity添加日志打印操作

class MainActivity2 : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main2)
        Log.d("MainActivity2", "This is a the second activity da~")
    }
}

 

在原来的MainActivity的xml文件中直接丢一个button进去

右边的窗口可以修改这个按钮的唯一id还有按钮文本内容

Mainactivity studio 在哪里android android studio的activity在哪_xml文件_15

 

使用Intent来实现活动的跳转

在MainActivity中设置button的监听器以实现

intent里第一个参数为上下文,第二个参数为跳转目标

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    Log.d("MainActivity", "this is a log message")
    val button0: Button = findViewById(R.id.button0)
    button0.setOnClickListener{
        val intent = Intent(this, MainActivity2::class.java)
        startActivity(intent)
    }
}

 

运行结果如图

Mainactivity studio 在哪里android android studio的activity在哪_java_16

Mainactivity studio 在哪里android android studio的activity在哪_java_17

 

 可以通过搜索看到打印日志

Mainactivity studio 在哪里android android studio的activity在哪_ide_18

 

可以通过intent将一个活动的数据传给下一个

在MainActivity中

button0.setOnClickListener{
            val data = "Hello, Activity2~"
            val intent = Intent(this, MainActivity2::class.java)
            intent.putExtra("extra_data", data)
            startActivity(intent)
        }

 

接着在MainActivty2中进行获取

val extraData = intent.getStringExtra("extra_data")
Log.d("SecondActivity", "extra data is $extraData")

 

运行得到结果

Mainactivity studio 在哪里android android studio的activity在哪_ide_19

 

 

参考资料:

第一行代码 Android(第3版本)郭霖

GDUFE移动应用开发课程

谷歌安卓开发者文档指南——通用Intent:

https://developer.android.google.cn/guide/components/intents-common?hl=zh_cn