Kotlin 在我印象里是出来好久的语言来,2017年 google宣布 咳咳复制个原话
5月18日,安卓团队在谷歌 I/O 2017 大会上宣布 Kotlin 成为官方头等支持语言。
在我新接手的新项目中,一些简单页面我现在也在使用Kotlin写了,之前也了解过一些相关语法,但是真上手后发现还是有好多问题存在,于是自己google,百度搞定。
说一下我在项目中的使用吧
我一般都是activity或者fragment使用的Kotlin,说一下新建时候的操作吧
我平时习惯新建一个activity的流程是
找到对应的包,右击(用mac触摸的默认 两个指头单击)New -> Activity -> Empty Activity 改一下名字
长这个样子,最后一项 Source Language 现在是java 下拉一下选择Kotlin
Finish
发现继承 变成了 :后面跟上夫类还加个小括号
说一下遇到问题,因为项目是mvp,所以我要实现 view接口但是我写 implements 竟然报错。。。最后发现,直接在继承的类后面,加一个逗号,没错就是逗号,然后再写你要实现的接口就ok了。像这样
这个时候要注意 TODO ,它不能在方法开始的第一行,因为它会报错,没错 你运行试试保准报错(先不说返回值的错误),
解决就是删除掉,或者在TODO前面有代码。。。
看一下方法 实现 夫类的方法都有 override,fun 是修饰 表明它是一个方法, 返回值的类型在 :(冒号)后面,比如图中的
override fun createPresenter(): LoginPresenter
需要返回的对象就是 LoginPresenter
override fun getLayoutId(): Int
这个就是 Int类型
返回依然是 通过 return 。。。。 不过不用写分号了,刚开始不习惯,后面越写越爽
再来说一下 for循环吧
简单的 int i。。。
for (i: Int in 1..10) {
dataArray.add("小王$i")
}
没错就这么简单,i是变量名字 :后面表示什么类型,然后 in 表示在什么范围
字符串拼接整数 可以不用加,直接来个 $整数
然后还有switch更爽
咳咳我好像删除了,反正关键字是 when。。。后面有空再补充
接下来是 setOnclickListener了
纠结了好久的先来个简单写法
btn.setOnClickListener {
开始你的骚操作吧!
}
就这么简单 没办法
有点水平的
.setXListViewListener(object : XListView.IXListViewListener {
override fun onRefresh() {
}
override fun onLoadMore() {
}
}
嗯 好像是只有一个方法的接口 可以直接省略,两个以上的这个写。。。。
object是固定写法
xml id 找控件
没错 我也纠结了半天的
private val learnStateLv: XListView by lazy() {
findViewById<XListView>(R.id.learn_state_lv)
}
麻烦的写法
val是常量 var是变量
kotlin有插件 可以直接使用。。
直接在类里面敲你的 id名字 然后就自动可以用了,它就是View对象了神奇吧
然后你发现它会多导入这个包
import kotlinx.android.synthetic.main.activity_massage_news.*
补充一下 start跳转吧
在匿名内部类里面 的this要这样写 this@AnnouncementActivity,普通的可以直接写 this startActivity(Intent(this@AnnouncementActivity, MessageWorkActivity::class.java))
fragment的 直接写 activity 它就表示是 getActivity
嗯 开心玩耍吧!