1. 动态修改imageView的背景
// 图片文件要放在drawable下,放在mipmap下调用不到,暂时不知道怎么调用mipmap的图片方法
ivRank.backgroundDrawable = ContextCompat.getDrawable(context, R.drawable.icon_first_rank)
tv_header_follow.background = ContextCompat.getDrawable(MyApplication.getAppContext(),
R.drawable.shape_fff5f5f5_16)
2. 动态修改imageView的图片
ivRank.imageResource = R.drawable.icon_first_rank
iv_like.setImageResource(R.drawable.icon_zan_red)
3. 引用String.xml中的资源
tv_follow.text = resources.getString(R.string.has_followed)
// 或者
tv_follow.text = context.getString(R.string.has_followed)
4. 动态修改textview的color
tv_follow.textColor = ContextCompat.getColor(context, R.color.color_808080)
5. 自动引入xml中的id
在build.gradle中添加
apply plugin: 'kotlin-android-extensions'
6. Kotlin中 ?、!!、?:、:: 、->、== 符号的简单说明
Kotlin中 ?、!!、?:、:: 、->、== 符号的简单说明
7. kotlin Lambda表达式
这篇文章写的不错 # Kotlin知识归纳(五) —— Lambda
8. kotlin循环
1、while() 和 do.....while()和Java一致
2、for循环:在kotlin当中有很多for循环类型,能够满足各种需求,详见下面示例
val list =arrayListOf("aa","bb","cc")
//递增 相当于for (int i = 0; i < list.size(); i++)
for(i in list.indices){
print(list[i])
}
//递增 相当于 for (int i = 2; i < list.size(); i++)
for(i in 2..list.size-1){print(list[i])}
//递减相当于 for (int i = list.size() - 1; i >= 0; i--)
for(i in list.size -1 downTo 0) {
print(list[i])
}
//操作列表内的对象
for(item in list) {
print(item)
}
// 加强版
for ((i, item) in list.witnIndex()) {
print(list[i])
print(item)
}
//变种版
list.forEach {print(it)}
list.forEach {print(it)}
list.forEachIndexed { i, s -> print(list[i])print(s)}
list.forEachIndexed(object :(Int,String)->Unit{
override fun invoke(i:Int, s:String){print(list[i])print(s)}})
9 kotlin 实现静态
kotlin 实现静态的方式
在 kotin 语言中其实没有 java static 的这个概念,基本都是用一个静态对象来模拟 class 的静态属性和方法,目前有4种实现方式:
- companion object - 伴随对象,声明单例的方式
- @JvmField + @JvmStatic 注解 - 使用注解标签声明 static 的部分
- object 单例 - 静态单例其实和 companion object 类似
- const - 包内唯一性,脱离类的束缚,kotlin 的特性,在 java 中会编译生成一个 kotlin.kt 的文件专门对齐提供支持
10 kotlin测试代码
package com.test
class testhah {
}
// 将main函数写在包下面,而不是类下面
fun main() {
System.out.print("hahah")
}
11 measureTimeMills 系统函数统计时间
// time就是里面函数执行的时间
val time = measureTimeMills {
}
11 kotlin在test包中测试代码
需要注意的是,必须使用println()打印日志,不能使用print()