Activity是什么

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

Activity的创建

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

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

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

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

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

Menu的使用

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

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

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

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

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

运行效果如图

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

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

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

Activity的跳转

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

在主活动的onCreate方法中添加

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

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

并为这个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还有按钮文本内容

使用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)
}
}

运行结果如图

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

可以通过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")

运行得到结果

参考资料:

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

GDUFE移动应用开发课程

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

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

【Android Studio】安卓开发初体验2——Activity的更多相关文章

  1. 【Android Studio】安卓开发初体验1——安装与试用

    安装 (安装预留硬盘(C盘)空余空间16G以上,8G以上内存) Intel用户: 安装Android Studio和AVD(安卓虚拟机 Android Virtual Device) 安装过程需要注意 ...

  2. android studio安卓项目出现Error: Default Activity Not Found错误无法编译的解决方案

    项目明明是没有问题的,有时候突然就出现Error: Default Activity Not Found错误,以前出现过我重新安装了android studio 都没有用,后来在网上(http://s ...

  3. Android Studio - 安卓开发工具 打开后报错集合、修复指南

    安卓开发工具错误修复 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心创新 ...

  4. 【Android Studio】安卓开发初体验3.1——UI设计之常用控件

    常用控件 首先对xml文件的编辑有三种模式 Code为纯代码 Split是一边代码,一边预览效果图 Designer就是有UI设计界面 TextView 用于在界面上显示一段文本信息 所有控件都可以在 ...

  5. Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验

    Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...

  6. Xamarin.iOS开发初体验

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKwAAAA+CAIAAAA5/WfHAAAJrklEQVR4nO2c/VdTRxrH+wfdU84pW0

  7. Android Studio安卓导出aar包与Unity 3D交互

    Unity与安卓aar 包交互 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分 ...

  8. Unity 3D与Android Studio安卓交互之-导出jar包

    u3d与安卓 jar 包交互 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享 ...

  9. Android Studio 1.3新版体验

    Google发布的Android Studio最新版是 1.3 版,上周的I/O大会中三位Google工程师对Android Studio作了将近1小时的演讲: 之前一直习惯用Eclipse luna ...

随机推荐

  1. 手把手撸套框架-Victory框架1.0 详解

    目录 其实Victory框架1.0 在8月份就完成了,整个9月份都没有更新博客,主要还是因为松懈了. 所以,趁着国庆节的放假的时间把博客给更新一下,1.0总的来说算不得一个成熟的产品,但是拿来开发我们 ...

  2. P4231 三步必杀

    题目描述 问题摘要: N个柱子排成一排,一开始每个柱子损伤度为0. 接下来勇仪会进行M次攻击,每次攻击可以用4个参数l,r,s,e来描述: 表示这次攻击作用范围为第l个到第r个之间所有的柱子(包含l, ...

  3. 序列化的JavaScript

    下载 序列化的JavaScript序列化的JavaScript 将JavaScript序列化为包含正则表达式.日期和函数的JSON超集. 概述 这个包中的代码最初是作为表示状态的内部模块.为了扩展它的 ...

  4. 使用Jest快照测试api

    你知道什么很烦人吗?API不匹配. 有一天,后台开发人员在没有通知前端开发人员的情况下更改了其中一个api."我们认为dateCreated这个名字比created_at更好,"他 ...

  5. 微信小程序适配iPhone X

    1.获取设备型号 App({ // 全局数据 globalData: { // 其他数据定义 ... isIPX: false, // 当前设备是否为 iPhone X }, // 小程序启动入口 o ...

  6. activiti 流程部署 保存流程图到数据库 保存二进制图片 存储失败

    activiti 流程部署 保存流程图到数据库  保存二进制图片 存储失败 具体错误如下 具体 junit测试 结果 :提示如下: 解决方法: 数据库版本不同 无法保存二进制文件到数据库表中!5.5. ...

  7. 多测师讲解——python002.2练习题

    # # 作业:第二天# ## # 1.求出1 / 1 + 1 / 3 + 1 / 5--+1 / 99的和 (1分之一+1分之三+1分支5....)# # 2.用循环语句,计算2 - 10之间整数的循 ...

  8. day26 Pyhton 复习re模块和序列化模块

    # re # 正则表达式 # 元字符 # 量词 # 贪婪匹配与惰性匹配 # 元字符量词 # 元字符量词? 在量词规范内,遇到一个x就停下来 # .*?x (.如果是第一个元素,那么它一定会从第一个元素 ...

  9. C++时间函数小结

    time time_t time (time_t* timer); 返回的值表示自1970年1月1日0时0分0秒(这个时间名叫 The Unix Epoch)起,到现在过去的时间,这里C/C++标准中 ...

  10. pytest框架: fixture之conftest.py

    原文地址:https://blog.csdn.net/BearStarX/article/details/101000516 一.fixture优势1.fixture相对于setup和teardown ...