我有一个ToastUtil
单,显示敬酒,并取消先前的敬酒,如果在屏幕上已经显示。这里是我当前的代码:
object ToastUtil {
private lateinit var mToast: Toast
fun init(applicationContext: Context) {
mToast = Toast.makeText(applicationContext, null, Toast.LENGTH_SHORT)
}
fun showShortToast(message: String) {
mToast.cancel()
mToast.setText(message)
mToast.duration = Toast.LENGTH_SHORT
mToast.show()
}
fun showShortToast(messageId: Int) {
mToast.cancel()
mToast.setText(messageId)
mToast.duration = Toast.LENGTH_SHORT
mToast.show()
}
}
但敬酒的邮件未显示在手机上。该ToastUtil
肯定已经被初始化(init(applicationContext
)在我的自定义App
实现:
class App : Application() {
override fun onCreate() {
super.onCreate()
ToastUtil.init(this)
}
}
我曾尝试与https://stackoverflow.com/a/33878500/8434188无济于事。有什么我失踪?
此代码现在工作和祝酒词都出现了。这在某种程度上也更清洁,因为我没有在我的应用程序执行进行初始化。
object ToastUtil {
private var mToast: Toast? = null
fun Context.showShortToast(message: String) {
if (mToast != null) {
mToast!!.cancel()
}
mToast = Toast.makeText(this, message, Toast.LENGTH_SHORT)
mToast?.show()
}
fun Context.showShortToast(
messageId: Int,
vararg strings: String = arrayOf()
) {
this.showShortToast(getString(messageId, strings))
}
}