Android和Kotlin 配合使用 的配置
app的build_gradle
apply plugin: 'kotlin-android' //android kotlin互用
apply plugin: 'kotlin-android-extensions' //android kotlin互用
工程的 build_gradle
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.21"
//kotlin 调用android
implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:1+"
添加这三个配置,然后 安装 kotlin 插件就可以,如果 在Android 代码调用 kotlin代码是找不到类,或者类名不存在,就是这些配置问题
变量声明
val 这个是声明常量 ,只能赋值一次
var 这个是声明变量
定义形式
val name:String = "" 对比Android String name = ""
val age:Integer= 3 对比Android int age= 3
同类型的都是这样子的定义的
如果声明一个handler 如何声明呢?
在kotlin是这样声明的 kotlin 中没有 new 这个关键字,
private val mHandler = object : Handler() {
override fun handleMessage(msg: Message) {
}
}
方法声明
在kotlin中使用 fun 来定义方法
原来在Android中定义一个方法
private String getName(){
return "张三"
}
在 kotlin 中就是这样的啦
private fun getName():String{
return "张三" //方法的返回值是 在方法名之后加 冒号 然后写上类型,如若没有返回值可以不写
}
方法关键字
open 关键字
在Kotlin世界中,不同于java,它所有的类,默认就是final的,那么意味着不能被继承
1、在类中所有的方法,默认也是final的,那么意味着默认情况下方法也不能被重写
2、为类增加open,class可以被继承了
Kotlin 之循环语句
switch表达式的转换
java
switch (entity.getTag()) {
case 100:
break;
case 400:
break;
case 200:
break;
case 300:
break;
}
kotlin
when (entity?.tag) {
100 -> {
}
200 -> {
}
300 -> {
}
400 -> {
}
}
for循环表达式
java
for(int i=0;i<10;i++){
}
kotlin
for (i in 0..9) {
}
for循环遍历 kotlin
for (i in mData.indices) {
}
增强for
for (item in mData ){
}
Map遍历
for (entry in mapData.entries) {
}