求N个数的最大最小值

使用泛型实现Comparable接口,可以适用于任意类型数字比较

1
2
3
4
5
6
7
8
9
10
fun <T:Comparable<T>> max(vararg nums:T):T{
if(nums.isEmpty()) throw RuntimeException("Params can not be empty")
var maxNum=nums[0]
for(num in nums){
if(num>maxNum){
maxNum=num
}
}
return maxNum
}

简化Toast用法

1
2
3
4
5
6
7
8
//字符串调用
fun String.showToast(context: Context,duration: Int=Toast.LENGTH_SHORT){
Toast.makeText(context,this,duration).show()
}
//资源id引用时调用
fun Int.showToast(context: Context,duration: Int=Toast.LENGTH_SHORT){
Toast.makeText(context,this,duration).show()
}

简化Snackbar用法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
fun View.showSnackbar(text:String,actionText:String?=null,duration:Int=Snackbar.LENGTH_SHORT,block:(()->Unit)?=null){
val snackbar= Snackbar.make(this,text,duration)
if(actionText!=null&&block!=null){
snackbar.setAction(actionText){
block()
}
}
snackbar.show()
}
fun View.showSnackbar(resId:Int,actionResId:Int?=null,duration:Int=Snackbar.LENGTH_SHORT,block:(()->Unit)?=null){
val snackbar= Snackbar.make(this,resId,duration)
if(actionResId!=null&&block!=null){
snackbar.setAction(actionResId){
block()
}
}
snackbar.show()
}
1
2
3
4
//调用
view.showSnackbar("this is Snackbar","Action"){
//具体逻辑
}