当前位置:网站首页>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
}
边栏推荐
猜你喜欢

【HMS core】【Media】【Video Editing Service】 The online material cannot be displayed, it is always in the loading state or the network is abnormal

hcip--ospf综合实验

二、判断 & 循环

Jetpack Compose 到底优秀在哪里?| 开发者说·DTalk

应用接入华为分析在应用调试模式下为何没有数据上报?

函数调用方式_stdcall 、 _cdecl 、_thiscall

【HMS core】【FAQ】Account、IAP、Location Kit and HarmonyOS典型问题合集1

谷歌工程师『代码补全』工具;『Transformers NLP』随书代码;FastAPI开发模板;PyTorch模型加速工具;前沿论文 | ShowMeAI资讯日报

C#西门子S7 协议通过偏移量的方式读写PLC DB块

在树莓派上驱动CSI摄像头
随机推荐
[HMS core] [FAQ] Collection of typical problems of push kit, AR Engine, advertising service, scanning service 2
3D激光SLAM:LeGO-LOAM论文解读---系统概述部分
代码随想录笔记_哈希_1l两数之和
华为云WeLink携手伙伴,共建协同办公生态
[AGC] Quality Service 1 - Example of Crash Service
应用OPC解决方案实现控制系统数据的安全交换
经典实例分割模型Mask RCNN原理与测试
几种常见的存储器
Databases - create databases, tables, functions, etc.
tiup help
C# List<T> 模板的案例
Google engineer "code completion" tool; "Transformers NLP" accompanying book code; FastAPI development template; PyTorch model acceleration tool; cutting-edge papers | ShowMeAI News Daily
php如何截取字符串的前几位
[TypeScript] Introduction, Development Environment Construction, Basic Types
Is Redis really slow?
Data Analysis Tools - DDL operations & DML operations in HQL
Image information extraction DEM
js 切换数据源的时候该缓存checkbox选中结果并回显?
[flutter]什么是MaterialApp和Material design
在 Chrome 浏览器中安装 JSON 显示插件