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