📜  Kotlin 中的 Android Toast(1)

📅  最后修改于: 2023-12-03 15:02:32.400000             🧑  作者: Mango

Kotlin 中的 Android Toast

简介

Toast是一种轻量级的提示组件,通常用来提示用户一些短暂的信息,比如操作成功、操作失败、网络出错等等。Toast可以在屏幕上呈现短暂的弹出式提示,通常显示在屏幕的底部,可以保证不打断用户当前的操作。

在Kotlin中,Toast操作非常方便,只需要调用系统的Toast类即可。

代码实现

要在Kotlin中使用Toast,需要先获取到一个Context对象,通常是当前Activity或者Application的Context。然后就可以通过系统的Toast类来创建Toast并显示。

示例代码
// 获取当前Activity的Context
val context = this

// 创建一个短暂的Toast
Toast.makeText(context, "Hello World", Toast.LENGTH_SHORT).show()

// 创建一个长时间显示的Toast
Toast.makeText(context, "Hello World", Toast.LENGTH_LONG).show()

这里通过Toast.makeText()方法来创建Toast对象,其中第一个参数是上下文对象,第二个参数是要显示的文本内容,第三个参数是显示时间的长短,可以是Toast.LENGTH_SHORTToast.LENGTH_LONG

Toast 与 UI 线程

由于Toast类是在UI线程中操作的,因此在非UI线程中直接创建Toast将会出现异常。如果需要在非UI线程中弹出Toast,可以使用Handler或者runOnUiThread()方法来在UI线程中创建Toast。

示例代码
Thread(Runnable {
    // 在子线程中创建Toast,将会出现异常
    Toast.makeText(context, "Hello World", Toast.LENGTH_SHORT).show()
}).start()

// 使用Handler在UI线程中创建Toast
Handler(Looper.getMainLooper()).post {
    Toast.makeText(context, "Hello World", Toast.LENGTH_SHORT).show()
}

// 使用runOnUiThread方法在UI线程中创建Toast
runOnUiThread {
    Toast.makeText(context, "Hello World", Toast.LENGTH_SHORT).show()
}
自定义 Toast

除了系统默认提供的Toast外,我们还可以通过自定义View来创建自定义的Toast。在Kotlin中,可以通过View.inflate()方法来创建自定义View。

示例代码
// 创建一个自定义View
val view = View.inflate(context, R.layout.custom_toast, null)

// 创建一个自定义Toast
val toast = Toast(context)
toast.duration = Toast.LENGTH_SHORT
toast.view = view

// 显示自定义Toast
toast.show()

在这个示例中,通过View.inflate()方法来创建一个自定义View,然后将其设置为Toast的显示View即可实现自定义Toast。

总结

在Kotlin中,操作Toast非常方便,只需要调用系统的Toast类即可创建和显示Toast。同时,Kotlin也提供了很多方便的方法来在非UI线程中操作Toast或者创建自定义Toast。因此,我们可以通过Toast来提示用户短暂的信息,让用户操作更加友好。