PAYATHON 2026

如何在 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 官方文档

备注:内容仅供参考。