【Android Studio】安卓开发初体验2——Activity
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的更多相关文章
- 【Android Studio】安卓开发初体验1——安装与试用
安装 (安装预留硬盘(C盘)空余空间16G以上,8G以上内存) Intel用户: 安装Android Studio和AVD(安卓虚拟机 Android Virtual Device) 安装过程需要注意 ...
- android studio安卓项目出现Error: Default Activity Not Found错误无法编译的解决方案
项目明明是没有问题的,有时候突然就出现Error: Default Activity Not Found错误,以前出现过我重新安装了android studio 都没有用,后来在网上(http://s ...
- Android Studio - 安卓开发工具 打开后报错集合、修复指南
安卓开发工具错误修复 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心创新 ...
- 【Android Studio】安卓开发初体验3.1——UI设计之常用控件
常用控件 首先对xml文件的编辑有三种模式 Code为纯代码 Split是一边代码,一边预览效果图 Designer就是有UI设计界面 TextView 用于在界面上显示一段文本信息 所有控件都可以在 ...
- Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验
Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...
- Xamarin.iOS开发初体验
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKwAAAA+CAIAAAA5/WfHAAAJrklEQVR4nO2c/VdTRxrH+wfdU84pW0
- Android Studio安卓导出aar包与Unity 3D交互
Unity与安卓aar 包交互 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分 ...
- Unity 3D与Android Studio安卓交互之-导出jar包
u3d与安卓 jar 包交互 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享 ...
- Android Studio 1.3新版体验
Google发布的Android Studio最新版是 1.3 版,上周的I/O大会中三位Google工程师对Android Studio作了将近1小时的演讲: 之前一直习惯用Eclipse luna ...
随机推荐
- Centos下Oracle11gR2安装教程与自动化配置脚本
系统环境准备 开发组件与依赖库安装 安装centos时选择Server with GUI,右面的可以不勾选,后面统一来装 配置本地yum源 以上包如果缺乏可配置本地yum源进行安装 sudo moun ...
- Springboot集成logback,控制台日志打印两次,并且是不同的线程打印的
背景 在搭建一个新项目的时候,从公司别的项目搞了个logback-spring.xml的配置过来,修改一下启动项目的时候发现 所有的日志都输出了两次 并且来自于不同的线程,猜测是配置重复了,但是仔细检 ...
- shell-的特殊变量-位置变量$0 $n $* $# $@详解
一:shell特殊变量 1. 位置变量 $0 获取当前执行的shell脚本的文件名,包括路径 $n 获取当前执行的shell脚本的第n个参数值,n=1..9,当n为0时表示脚本的文件名,如果n大于9 ...
- linux 线程挂起恢复
1 //============================================================================ 2 // Name : thread. ...
- 多测师_高级讲师肖sir讲解html中 Button跳转连接方法归纳
第一种方法: 1.1<a href="http://www.baidu.com"> <input type="button" name=& ...
- day01 Pyhton学习
一.python介绍 python是一种解释型.弱类型的高级编程语言. 编译型:是把源程序的每一条语言编译成机器语言,并保存成二进制文件,给计算机执行,运算速度快. 优点:程序执行效率高,可以脱离语言 ...
- python 利用jieba库词频统计
1 #统计<三国志>里人物的出现次数 2 3 import jieba 4 text = open('threekingdoms.txt','r',encoding='utf-8').re ...
- 请求https接口时报错:Caused by SSLError(SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificat,安装certifi
如何解决SSL 根证书验错误: 一种解决方法是:verify=False 在session.request 里面: session.post(post_url,data=post_data,heade ...
- 初试Python
01 Python简介 Python是一种跨平台的计算机程序设计语言.于1989年开发的语言,创始人范罗苏姆(Guido van Rossum),别称:龟叔(Guido). python具有非常多并且 ...
- 【树形DP】BZOJ 1131 Sta
题目内容 给出一个\(N\)个点的树,找出一个点来,以这个点为根的树时,所有点的深度之和最大 输入格式 给出一个数字\(N\),代表有\(N\)个点.\(N \le 1000000\).下面\(N-1 ...