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

【Linux Operating System】 Virtual File System | File Cache

RISC-V calling conventions

Qt 容器控件之Tab Widget 使用详解

3D激光SLAM:LeGO-LOAM论文解读---系统概述部分

PCIE入门

php字符串如何去除第一个字符

【Linux操作系统】 虚拟文件系统 | 文件缓存

Pytorch 训练技巧

路遇又一个流量风口,民宿长期向好的逻辑选对了吗
![[HMS core] [FAQ] Collection of typical problems of push kit, AR Engine, advertising service, scanning service 2](/img/08/9f2c7d1ea704f234c2a1882f85df24.png)
[HMS core] [FAQ] Collection of typical problems of push kit, AR Engine, advertising service, scanning service 2
随机推荐
Databases - create databases, tables, functions, etc.
AI遮天传 DL-CNN
字符串加千分位符与递归数组求和
Manage components using TiUP commands
Leetcode 118. 杨辉三角
nodejs environment variable settings
Placement Rules usage documentation
三维重建方法汇总
配置Path环境变量
影像信息提取DEM
Visual Studio 集成Qt开发环境的一些注意事项
tiup list
静态网页和动态网页的不同之处;该如何选择服务器呢
3D激光SLAM:LeGO-LOAM论文解读---激光雷达里程计与建图
Google engineer "code completion" tool; "Transformers NLP" accompanying book code; FastAPI development template; PyTorch model acceleration tool; cutting-edge papers | ShowMeAI News Daily
Recent learning defragmentation (24)
新技术要去做新价值
DTSE Tech Talk丨第2期:1小时深度解读SaaS应用系统设计
TiUP terms and core concepts
FME实现CAD带属性转SHP数据方法