上一篇,我们演示了如何使用kotlin点出hello world,这期我们来通过代码来实际演示一些常见的功能。

package cn.fover.hellokotlin

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.TextView

/**
 * 功能需求:点击按钮改变Textview的文字
 */
class MainActivity : AppCompatActivity() {
    //继承通过 :xxxx()的方式

    private var mTextView: TextView? = null //定义一个Textview的对象,其中?号表示这个变量可能为null
    private var mButton: Button? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        //将JAVA中的@override改成override,方法的定义采用fun关键字,括号中的内容是先变量后类型
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        initView()//和JAVA一样,区别就是可以不用带结束的;号
    }


    /**
     * 初始化view
     */
    private fun initView() {
        mTextView = findViewById(R.id.textView) as TextView
        mButton = findViewById(R.id.button)as Button //类型转换通过as关键字来转换
        //这里需要说明的是两个!!表示这个变量确定不为空,?号表示在执行代码前先判断这个变量是否为空,如果为空则不执行,
        //这样做的好处就是减少空指针错误。其中{mTextView?.setText("Hello Kotlin")}这行代码使用了lambda的特性。
        mButton!!.setOnClickListener { mTextView?.setText("Hello Kotlin") }
    }
}

代码有注释,大部分人看一眼都懂的。

这里再总结一下比较方便的特性:

1、不用写分号作为结束标识

2、!!与?的合理使用可以有效的降低空指针带来的错误

3、支持lambda语法,减少代码行数


这里要说明一下,有些人可能会觉得写长篇会比较合适,我其实也想写长篇,但是发布文章的界面实在是蛋疼,非常小,写长了有时候通读编辑的时候好麻烦,有时候1张图就得滚好几下,而且也不能放大的,所以我只能多发几篇,把这个系列讲完。

下一篇,将介绍Kotlin Extensions For Android的使用

4 0

共收到0条回复

加入小组与大家一起讨论吧