如何在 Android 中使用 Kotlin 显示 Toast 消息?
技术老齐
在 Android 中,调用 Toast.makeText(context, text, duration).show() 可以显示一条 Toast 消息。要在点击按钮时显示提示,将这行代码放进按钮的 setOnClickListener 回调中即可。
基本用法
在 Activity 中可以这样写:
import android.widget.Toast
Toast.makeText(this, "按钮已点击", Toast.LENGTH_SHORT).show()
makeText() 接收三个参数:
context:上下文,在Activity中可以传入this。text:需要显示的文字。duration:显示时长,使用Toast.LENGTH_SHORT或Toast.LENGTH_LONG。
makeText() 只负责创建 Toast,需要调用末尾的 .show() 才能显示,注意不要漏掉。Android 官方文档
点击按钮显示 Toast 的完整示例
这个示例使用传统的 XML 布局,适用于采用 View 界面的项目。
1. 添加按钮布局
在 res/layout/activity_main.xml 中放入一个按钮:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<Button
android:id="@+id/showToastButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="显示提示" />
</LinearLayout>
2. 在 Activity 中设置点击事件
示例使用系统自带的 Activity。将代码放入项目的 MainActivity.kt 时,请保留文件原有的 package 声明。
import android.app.Activity
import android.os.Bundle
import android.widget.Button
import android.widget.Toast
class MainActivity : Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val showToastButton =
findViewById<Button>(R.id.showToastButton)
showToastButton.setOnClickListener {
Toast.makeText(
this@MainActivity,
"按钮已点击",
Toast.LENGTH_SHORT
).show()
}
}
}
先用 setContentView() 加载布局,再通过 findViewById() 找到其中的按钮。点击按钮后,回调会创建并显示 Toast,提示会自动消失。
this@MainActivity 明确指定当前 Activity 作为 Context,在这个 Kotlin lambda 中也可以直接写 this。如果现有页面继承自 AppCompatActivity,保留原来的父类即可,Toast 的调用方式相同。
常见遗漏与注意事项
- XML 中的按钮 ID
showToastButton要与R.id.showToastButton一致,setContentView()加载的布局也必须包含该按钮。 - 时长参数使用
Toast.LENGTH_SHORT或Toast.LENGTH_LONG,不能用3000表示三秒,它不接受毫秒数。 - 普通文字 Toast 不需要额外权限或第三方库。如果新增了 Activity,需要按普通页面的要求在
AndroidManifest.xml中注册;使用已有 Activity 时,无需为 Toast 增加配置。 - 按钮点击回调已在主线程执行,无需额外切换线程。如果从后台任务触发提示,应先切回主线程再调用。
- 提示文字尽量简短。当应用以 Android 12(API level 31)或更高版本为目标时,文字 Toast 最多显示两行,并带有应用图标。Android 官方文档
备注:内容仅供参考。
