前言
Kotlin出来也有一段时间了,自己也研究过一段时间,感觉相对于java来说,最大的优势就是代码简介了不少,最近也开始着手尝试kotlin写项目,踩过几个坑,这里记录一下。
findViewById
在Android开发这个领域,findViewById可以说是安卓开发的代名词了,但是在Kotlin中,findViewById会有点小小的变化,下面给大家看一下区别。
java中
TextView tv = (TextView) findViewById(R.id.tv);
Kotlin中
在kotlin中,写findViewById的时候,后面会默认出现一个泛型,可能很多刚接触kotlin的朋友会懵,就像这样那么在Kotlin中,findViewById应该怎么写呢?这里给大家科普一下。
第一种写法,去掉泛型,在前面声明该控件的类型
var tv : TextView = findViewById(R.id.tv)
第二种写法,在泛型中指定该控件类型
var tv = findViewById<TextView>(R.id.tv)
不需要findViewById
重点来了,在Koltin中,其实我们可以不需要findViewById来找控件,可以直接拿控件在布局中的id直接使用。
第一步,在module下的gradle文件中,加入
apply plugin: 'kotlin-android-extensions'
第二步,在布局对应的Activity或者fragment中加入
import kotlinx.android.synthetic.main.activity_main.*
这里的activity_main为你自己布局名
接下来就是见证奇迹的时刻
你可以直接在代码中使用该控件,比如给这个TextView赋值或者设置点击事件
tv.text = "LXT的Koltin小Demo"
//这里的toast用到了kotlin的扩展函数,以后再说
tv.setOnClickListener{toast("点击事件")}
总结
这虽然是个小问题,但是也算是打开了kotlin的大门,欢迎小伙伴们一起学习和讨论Koltin。这篇文章也算是自己Kotlin系列的一个开始,以后也会不定期更新,喜欢的小伙伴们欢迎动动你的小手点个赞。
网友评论