当前位置:网站首页>04、Activity的基本使用
04、Activity的基本使用
2022-07-30 15:57:00 【陈啸写的还行吧】
1.Toast
Toast是Android系统提供的一种非常好的提醒方式,在屏幕中间可以使用它将一些短小的信息通知给用户,这些信息会在一段时间后自动消失,并且不会占用任何屏幕控件
新创一个Activity
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#d8e0e8">
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="发射到美利坚"/>
</LinearLayout>
首先定义一个弹出Toast的触发点,在界面上设置一个按钮,然后我们点击这个按钮作为弹出Toast的触发点,在Oncreate方法中添加以下代码
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
/*val button1 : Button = findViewById(R.id.button1)*/
button1.setOnClickListener {
Toast.makeText(this,"白宫已被锁定",Toast.LENGTH_SHORT).show()
}
}
}
(在Activity中,可以通过findViewById方法获取在布局文件中定义的元素,除此之外还可以在app/gradle文件的头部引入一个kotlin-android-extensions插件,这个插件会根据布局文件定义的控件id自动生成一个具有相同名称的变量,然后再Activity里面就可以直接使用这个变量而不用在调用findViewById方法)
Toast通过静态方法makeText()创建出一个Toast对象,然后调用show()将Toast显示出来就可以。makeText()方法需要传人3个参数。第一个参数是Context,也就是Toast要求的上下文,由于Activity本身就是一个Context对象,因此这里直接传入this即可。第二个参数是Toast显示id文本内容。第三个是Toast显示的时长,这里有两个内置常量可以选择LENGTH_SHORT和LENGTH_LONG
运行程序看一下效果
效果非常好
2.Menu
手机的屏幕非常有限,如果Activity里面有大量的菜单需要显示,界面就会不够使用。Android提供了一种方式可以让菜单都得到展示还不占用任何屏幕空间。
在res目录下创建一个menu文件夹,右击res目录->new->Directory,输入文件夹名"menu",点击ok,接着在这个文件夹下创建一个名叫main的菜单文件
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/add_item"
android:title="添加发射对象"/>
<item
android:id="@+id/remove_item"
android:title="移除发射对象"/>
<item
android:id="@+id/update_item"
android:title="修改打击对象"/>
<item
android:id="@+id/select_item"
android:title="搜索发射对象"/>
</menu>
在这里,<item>标签用来创建具体的某一个菜单项,然后通过android:id给这个菜单指定一个唯一的标识符。
返回Activity重写onCreateOptionsMenu方法
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.main,menu)
return true
}
然后给每一个item添加一个响应事件onOptionsItemSelected
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when(item.itemId){
R.id.add_item -> Toast.makeText(this,"You click add_item",Toast.LENGTH_SHORT).show()
R.id.remove_item -> Toast.makeText(this,"You click remove_item",Toast.LENGTH_SHORT).show()
R.id.update_item -> Toast.makeText(this,"You click update_item",Toast.LENGTH_SHORT).show()
R.id.select_item -> Toast.makeText(this,"You click select_item",Toast.LENGTH_SHORT).show()
}
return true
}
边栏推荐
- TiUP FAQ
- [HMS core] [FAQ] Collection of typical problems of push kit, AR Engine, advertising service, scanning service 2
- Array element inverse
- [NCTF2019] Fake XML cookbook-1|XXE vulnerability|XXE information introduction
- vivo宣布延长产品保修期限 系统上线多种功能服务
- 绕开驱动层检测的无痕注入
- 【HMS core】【FAQ】push kit、分析服务、视频编辑服务典型问题合集3
- (一)云计算技术学习--虚拟化vSphere学习
- 【HMS core】【FAQ】push kit, WisePlay DRM, Location Kit, Health Kit, 3D Modeling Kit, SignPal Kit Typical Questions Collection 4
- C# List<T> 模板的案例
猜你喜欢
【SOC】经典输出hello world
武汉星起航跨境电商有前景吗?亚马逊的未来趋势如何发展?
涨姿势了!原来这才是多线程正确实现方式
C#西门子S7 协议通过偏移量的方式读写PLC DB块
Jetpack Compose 到底优秀在哪里?| 开发者说·DTalk
华为ADS获取转化跟踪参数报错:getInstallReferrer IOException: getInstallReferrer not found installreferrer
完美绕开CRC32检测的无痕hook
[HMS core] [FAQ] A collection of typical questions about push kit, analysis services, and video editing services 3
三维重建方法汇总
应用OPC解决方案实现控制系统数据的安全交换
随机推荐
[AGC] Quality Service 1 - Example of Crash Service
Huawei ADS reports an error when obtaining conversion tracking parameters: getInstallReferrer IOException: getInstallReferrer not found installreferrer
二、判断 & 循环
大型综合办公管理系统源码(OA+HR+CRM)源码免费分享
Horizontal Pod Autoscaler(HPA)
3D激光SLAM:LeGO-LOAM论文解读---系统概述部分
Array element inverse
解析字符串拼接的两种情况
FME's scheme and operation process for reading and writing cass data
PCIE入门
TiUP FAQ
Database - SQL
How to use Redis for distributed applications in Golang
Qt 容器控件Tool Box 使用详解
【HMS core】【Media】【Video Editing Service】 The online material cannot be displayed, it is always in the loading state or the network is abnormal
Qt 动态库与静态库
Sparse-PointNet: See Further in Autonomous Vehicles 论文笔记
【AGC】Open Test Example
php如何截取字符串的前几位
Jetpack Compose 到底优秀在哪里?| 开发者说·DTalk