敞开成长之旅!这是我参与「日新计划 2 月更文应战」的第 4 天,点击检查活动概况

前言

有时候咱们开发时会发现有些办法调用十分多,但它的默许的调用办法却要传许多参数进去而且还得记得调用具体的写法,比方Toast,不止要调用makeText()办法还得在makeText()办法后加上show():

Toast.makeText(context, "A", Toast.LENGTH_LONG).show()

有时候就会由于忘记调show()办法而不显示,结果导致许多古怪的Bug,所以对其的简化仍是很有必要的。

正篇

实现办法

那么咱们怎样对Toast办法简化呢?

安卓开发基础——简化Toast调用方法
其实很简略,只需咱们新建一个Toast.kt文件:

安卓开发基础——简化Toast调用方法

import android.content.Context
import android.widget.Toast
//工具办法
//增加扩展函数
//简化Toast调用办法
fun String.showToast(context : Context) {
    Toast.makeText(context, this, Toast.LENGTH_LONG).show()
}
fun Int.showToast(context : Context) {
    Toast.makeText(context, this, Toast.LENGTH_LONG).show()
}

然后去除默许加上的class类,并为String和Int类各写一个扩展办法,然后咱们在扩展办法中调用Toast办法,将其间的第二个参数(弹出的内容)换成this参数,就能更简略的使用Toast办法了:

安卓开发基础——简化Toast调用方法
字符串调用:

"start ActivityPlayVideo".showToast(applicationContext)

定义在string.xml的字符串资源调用:

R.string.app_name.showToast(applicationContext)

但咱们仍需要优化该工具办法,由于此刻咱们是写死了弹出时长的,不过Kotlin中有对函数设置参数默许值的功用:

安卓开发基础——简化Toast调用方法

fun String.showToast(context : Context, duration: Int = Toast.LENGTH_LONG) {
    Toast.makeText(context, this, duration).show()
}
fun Int.showToast(context : Context, duration: Int = Toast.LENGTH_LONG) {
    Toast.makeText(context, this, duration).show()
}

这样写好后,咱们就在不需要设置弹出时刻时不去输入第二个参数,默许时刻,而在有弹出时长需求时改动第二个参数duration来设置时长:

安卓开发基础——简化Toast调用方法

//默许弹出时长
"start ActivityPlayVideo".showToast(applicationContext)
//手动设置弹出时长
R.string.app_name.showToast(applicationContext, 500)

题外话

终究,咱们就简化好了Toast,后续在App中调用它也愈加便利好用,当然,其实最好还加上对子线程的支撑,由于子线程对UI不能直接操作。

总结

尽管办法很简略,但在项目开发中确实蛮有效果的,简化了编写代码的过程。