Kotlin扩展函数对Toast的封装使用

ToastJava 下的封装一般都是定义一个工具类并将其设置为静态方法直接去调用但是我们可以使用Kotlin扩展函数对此方法进行进一步封装使其看起来更为简洁

下面看一下简单的Toast封装

//设置为String的扩展函数只要是String类型就可以直接使用 "".showToast()的格式
//但是这样封装不能过把之前的message顶掉影响使用
fun String.showToast(duration: Int = Toast.LENGTH_SHORT){
	//MyApplication 这是一个直接获取全局context的类
	Toast.makeText(MyApplication.context,this,Toast.LENGTH_SHORT).show()
}

下面对Toast进行稍微改动

//下面引入一个全局Application类
class MyApplication : Application() {

    companion object {
        lateinit var context: Context
        lateinit var toast: Toast
    }

    override fun onCreate() {
        super.onCreate()
        context = applicationContext
        //直接在此处获取一个toast对象
        toast = Toast.makeText(applicationContext,"",Toast.LENGTH_SHORT)
    }

}

//同上定义为String类的扩展方法
fun String.showToast(duration: Int = Toast.LENGTH_SHORT){
    MyApplication .toast.setText(this)
    MyApplication .toast.duration = duration
    MyApplication .toast.show()
}

//例如在onClick事件使用
btn_scale.setOnClickListener {
	//count 是一个计数器为了直观看出Toast是可以直接显示信息不用等待的
	//如果要设置其显示时常直接传入即可 如下所示
    "show message ${count++}".showToast(Toast.LENGTH_LONG)
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值