前言
Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由 JetBrains 设计开发并开源。
Kotlin 可以编译成Java字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。
在Google I/O 2017中,Google 宣布 Kotlin 成为 Android 官方开发语言。

配置环境

Kotlin配置非常简单,在AS中搜索插件Kotlin,安装即可,然后在包目录下右键新建文件,就会出现选择新建一个kotlin文件,然后AS会提示需要修改配置文件,点击确定,重新build(需要下载一些东西)。Kotlin 程序文件以 .kt 结尾。

使用kotlin创建一个Activity

class MyKotlin: Activity() {    override fun onCreate(savedInstanceState: Bundle?) {        //相当于onCreate生命周期函数        super.onCreate(savedInstanceState)        setContentView(R.layout.kotlin_layout);    }}

kotlin语法请自行百度掌握

声明变量
在android中基本语句就是定义变量和获得控件对象,而kotlin在定义变量时提供两种关键词:
可变变量定义:var 关键字
不可变变量定义:val 关键字,只能赋值一次的变量(类似Java中final修饰的变量)

kotlin定义变量非空属性必须在定义的时候初始化,但android的组件对象要在onCreate生命周期后才能获得对象,所以kotlin还提供了一种可以延迟初始化的方案,当变量第一次使用时初始化。

对于val 变量使用lazy方案

val button:Button by lazy{        findViewById(R.id.button2) as Button//变量第一次使用时执行初始化}

对于var 变量使用lateinit 方案

private lateinit var name:String

点击事件
kotlin提供非常简单的按钮点击事件

button.setOnClickListener{     Log.e("MyKotlin","点击了按钮")}

完整代码

class MyKotlin: Activity() {    val button:Button by lazy{        findViewById(R.id.button2) as Button    }    private lateinit var name:String    override fun onCreate(savedInstanceState: Bundle?) {        //相当onCreate生命周期函数        super.onCreate(savedInstanceState)        setContentView(R.layout.kotlin_layout);        button.text="MyKotlin";        button.setOnClickListener{            Log.e("MyKotlin","点击了按钮")        }        name="JY"        Log.e("name",name);    } }

针对控件的使用,AS还提供了一个插件:kotlin-android-extensions,使得可以直接使用控件的id作为对象进行操作
在gradle.build中添加插件

在Activity类文件中使用id作为控件对象

kotlin很强大,对比java,代码简洁了很多,但要使用好,还要认真学习kotlin语法,主要是要理解它的思想,从java转过来学习kotlin,还要时刻分清楚这不是java语言,不能用java思想编程(刚开始学习的时候,第一想法就是用java怎么实现的-_-)

更多相关文章

  1. Android(安卓)Broadcast机制深入解析
  2. 初始化有EditText或AutoCompleteEditText的界面时系统自动打开软
  3. Android(安卓)databinding(详解三)--自定义属性使用
  4. android模拟器无法启动问题之中文路径
  5. 转:Activity_dialog效果
  6. android电话流程(打电话,接电话,挂断电话)
  7. Android(安卓)自定义RecyclerView.OnScrollListener,实现上拉分页
  8. Android(安卓)Studio Error: null, Cannot fit requested classe
  9. 关于Android中传递数据的一些讨论

随机推荐

  1. android performClick使用
  2. android表单上传出现java.lang.NoClassDe
  3. Android AES加密实现
  4. Android Activity 设置 窗口大小
  5. android 数据库 SQLiteOpenHelper和Conte
  6. 【翻译】(17)SYSV IPC
  7. android 音乐播放器汇总
  8. Android压缩图片和libjpeg库
  9. android:init.c
  10. Android中获取IMEI号