如何在 Android 上使用 Kotlin 显示 Toast?

新手上路,请多包涵

在 Android 的不同 Kotlin 示例中,我看到 toast("Some message...")toastLong("Some long message") 。例如:

 view.setOnClickListener { toast("Click") }

据我了解,它是 Activity 的扩展功能。

您如何以及在哪里定义这个 toast() 函数,以便您能够在整个项目中使用它?

原文由 Andrew 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.7k
2 个回答

它可以是 Context 的扩展功能:

 fun Context.toast(message: CharSequence) =
    Toast.makeText(this, message, Toast.LENGTH_SHORT).show()

您可以将其放置在项目中的任何位置,具体取决于您。例如,您可以定义一个文件 mypackage.util.ContextExtensions.kt 并将其作为顶级函数放在那里。

每当您有权访问 Context 实例时,您都可以导入此函数并使用它:

 import mypackage.util.ContextExtensions.toast

fun myFun(context: Context) {
    context.toast("Hello world!")
}

原文由 nhaarman 发布,翻译遵循 CC BY-SA 3.0 许可协议

这是活动或片段的吐司扩展

fun showToast(context: Context,@StringRes string : Int, duration: Int = Toast.LENGTH_SHORT){
  Toast.makeText(context,string,duration).show()
 }

inline fun Context.toast(message:()->String){
 Toast.makeText(this, message() , Toast.LENGTH_LONG).show()
}

inline fun Fragment.toast(message: () -> String, duration: () -> Int = { Toast.LENGTH_LONG }){
 Toast.makeText(this.context,message(),duration()).show()
}

inline fun AppCompatActivity.toast(message: () -> String, duration: () -> Int = { Toast.LENGTH_LONG }){
 Toast.makeText(this.applicationContext,message(),duration()).show()
}

如果你想要简单的吐司,只需调用片段和活动的第一个方法

 showToast(yourContext,"your message")  or showToast(yourContext,"your message",1200L)

或者

toast {
 "Your message"
}

或者

toast({"your message"}) or toast({"your messge"},{your duration = 1200L})

原文由 Tarif Chakder 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题