在本次谷歌IO大会上Kotlin终于转正成为安卓官方语言。虽然每年都会出来一些编程语言,不过很多都小众且容易消亡,但这次,由于Oracle和Google的在Java版权问题,以及Google的安卓生态圈保卫战等原因,这次kotlin多半会真正上位,起码在安卓开发方面,相信随着Kotlin的完善和安卓生态圈的继续成熟,java的使用将越来越少。 本文主要记录自己学习Kotlin过程中卡住的一些技术点。 1-Kotlin实现Activity之间的跳转 - 这点其实挺无奈的,在网上找了半天也没找到最准确,说明资源还是挺缺的。记录下,其实和java中还是比较像的。kotlin中,使用intent跳转到其它activity 其中,这里的activity都是kotlin activity: var intent = Intent(this,SecondActivity::class.java);startActivity(intent)
当然若是使用anko库的话,跳转方式为: startActivity<secondactivity>(...可传数据...)
2-Kotlin中匿名内部类 - kotlin接口类似于java jdk8中的接口,具体用法就不介绍了。当使用接口回调时,传参的匿名内部类的格式稍微复杂些,类似于静态方法的定义,这里,kotlin中匿名内部类的表示为: //.kt接口 interface ICallBack { fun getResult(age:Int) } //传参, 匿名内部类 request.setCallBack(object :ICallBack{ override fun getResult(age: Int) { } })
接上,不过匿名内部类在kotlin中使用并不多 3-Kotlin中扩展属性和函数 - 可以使用类似静态导入的方式,给一个已存在但不易修改的类,动态的添加属性和方法,这是比较牛的一个功能。记录一下 //作为单例对象的类声明 object Utils { fun Context.tos(msg: String) { Toast.makeText(this, msg, Toast.LENGTH_LONG).show(); } val View.ctx:Context get() = context }
== 给所有的activity中植入toast方法,静态导入packgename.Utils.tos即可,调用tos(). == 在所有的设计view引用的地方植入直接调用属性,内部实现还是调用的方法静态导入packgename.Utils.ctx即可,使用方法view.ctx 4-Kotlin中函数参数,多参数的使用 很多教程和博客里基本只提到了单参数的函数作为参数,那个相对比较简单,就不再赘述。这里只举个多参数函数的用法,其实也很类似,但是记录的博客并不多。 首先定义个请求类,有个函数作为参数,该函数需要两个参数: class Request2(var callListener:(String,Int) -> Unit) { fun run() { val readText = "from request2" callListener.invoke(readText,12345) } } 假如有个btn点击,完成逻辑,代码如下: btn_r1.setOnClickListener{ Request2{text:String,length:Int-> Log.e("flag--","(MainActivity.kt:27)-->>"+text+length); }.run() }
此时上述回调里面的log日志便会打印出来。 文章转载自Kotlin在安卓中的一些tips,全部内容请点击链接查看</secondactivity>
收藏
共同学习,写下你的评论
评论加载中...
作者其他优质文章