Hello Kotlin

今天使用了一下kotlin, Google指定的Android官方開發語言。簡單記錄一下。

一、使用Android Studio 配置開發環境

我的AS版本是2.2.2,在打開AS之後,只需要在File-Settings-Plugins-Brower Repositories中搜索KOTLIN插件,點擊安裝,59.3Mb大。安裝完成之後,重新啓動AS即可。

二、使用kotlin

和平常一樣,新建項目,然後點擊Code-Convert JAVA file to kotlin file即可將新建的項目中的java語言轉換爲kotlin。之後點擊AS自動彈出的Config和SYNC。既可有AS自己向gradle中添加依賴。helloworld程序便可以運行。
kotlin的初始化onCreate是這樣子的

package com.example.guofang.learnkotlin

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

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        }
    }

是不是感覺很簡潔的樣子?
接下來牛刀小試,定義一個texview,爲之設置點擊事件。

package com.example.guofang.learnkotlin

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

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val textView=findViewById(R.id.tv_test)as TextView
        textView.setOnClickListener {
            Toast.makeText(this,"This is my first kotlin code!",Toast.LENGTH_LONG).show()
        }
    }
}
![實現後是這樣的](http://img.blog.csdn.net/20170809082041704?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXEzNTY2NTMyNDY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)

其他

Kotlin確實非常簡潔,有很多java不具備的優點
在jvm的基礎上特別在安全性做了很大的改進。。很多的特性基本杜絕了一些不安全的編碼,並且做了類似 RASP 的安全方案。
官方也宣傳說對Java 100%兼容.

1.FindViewById

由於有了插件kotlin-android-extensions.

Activity裏可以這樣寫,不需要在額外申明TextView變量了。所以注意xml文件裏id的命名使用駝峯寫法

 setContentView(R.layout.main)
        tvTitle.setOnClickListener { toast("hello") }

Adapter裏這樣寫, ViewHolder完全不需要了

 view.tvName.text = notice.name
   view.tvNumber.text = ""
   view.ivIcon.setImageUrlAsync(icon, true)

2.注意在kotlin中== 相當於java中的equal函數,=== 相當於java中的==。不過一般情況加==就夠了。kotlin中沒有基本類型,所有的如Int,Long都是對象。

3.Koltin的Null處理

使用安全操作符?可以省略很多無意義判空操作

不多說,直接上代碼,一看就都明白了。

以前這樣寫

 if (adapter != null) {
        List<cmdnotice> list = adapter.getDatas();
                if (list != null) {
                    for (CmdNotice it :list) {
                        if (it.getId() == notice.getId()) {
                            it.setStatus(notice.getStatus());
                            adapter.notifyDataSetChanged();
                            break;
                        }
                    }
                }
        }</cmdnotice>

現在這樣寫

adapter?.datas?.firstOrNull({ it.id == notice.id })?.let {
                    it.status = notice.status
                    adapter?.notifyDataSetChanged()
                }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章