Kotlin的初探

最近Google的I/O大會又火了了一把,不為別的,只為android開發語言,其實這門開發語言在2010年的時候就已經問世了,只是當時的技術也不是很成熟,google也沒有重視它,導致到目前為止,google才開始挖掘這門語言.
我認為這門語言在以后android開發中,會成為主流,原因之一是:受到了google開發人員的重視,二,我覺得最重要的是,版權問題,android使用java開發,始終不是自己的語言,最后難免會出現以前的jvm的問題.我想這大概也試google推崇這門語言的原因之一吧.
下面我們一起來見識一下Kotlin語言吧.

開發環境:

  Android Studio

首先,目前studio版本不支持該語言,所以說必須先下載插件(但是在3.0版本,studio會直接支持),下載插件安裝過程我就不詳細說了.

插件下載完成后,我們開始我們的開發之旅.

新建android工程,和原先的沒有什么區別,當然你也可以直接創建Kotlin工程,下載插件后,在創建activity的時候會出現這個界面
Paste_Image.png

箭頭標識的是 一個是實體類,一個是activity.
但是我不建議現在直接創建這種. 我建議下面這種方式,先創建以前一樣的工程項目.當 你把東西創建完成后,可以直接轉換.

轉換步驟: 1.將java代碼轉換成kotlin代碼

     第一步,打開java代碼文件
     第二步,Ctrl+shift+A
    第三步,在搜索框中輸入Convert Java File to Kotlin File即可.Ctrl+shift+K
    第四步,配置 
![Paste_Image.png](http://upload-images.jianshu.io/upload_images/3163051-632dfc6f147ea560.png?  imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

最后同步一下就ok了.
基本語法:
常量 val 代表用final修飾的
變量 var
靜態 companion object 代表static
其他的詳見 官方文檔
http://www.mamicode.com/info-detail-1172799.html
下面是我寫的一個自己以前封裝的帶上拉加載和下拉刷新的listView的一個Demo

部分代碼如下:

   private fun initData() {
    if (allData.size <= 0) {
        for (i in 0..99) {
            allData.add("我是張三-----" + i)
        }
    }
    val adpter = MyAdpter(this, allData)
    listview!!.adapter = adpter
   // listview!!.onItemClickListener = this
    listview!!.setOnRefreshListener(object : RefreshListView.OnRefreshListener {
        override fun onPullDownRefresh() {
            try {
                Handler().postDelayed(object : Runnable {
                     override fun run() 
                        allData.add(0, "我是下拉刷新出來的數據.. ")
                        adpter.notifyDataSetChanged()
                        listview!!.onRefreshFinish()
                    }
                }, 3000)
            } catch (e: InterruptedException) {
                e.printStackTrace()
            }
        }
        override fun onLoadingMore() {
            try {
                Handler().postDelayed(object : Runnable {
                    override fun run() {
                        allData.add("我是加載更多的數據1")
                        allData.add("我是加載更多的數據2")
                        allData.add("我是加載更多的數據3")
                        listview!!.onRefreshFinish()
                    }
                }, 5000)
            } catch (e: InterruptedException) {
                e.printStackTrace()
            }
        }
    })
}

去掉了標點符號結尾. 該demo只是一個簡易的展示.只是一個Kotlin的入門體驗.
最后推薦一個java轉Kotlin 的網站
https://try.kotlinlang.org/#/Examples/Hello,%20world!/A%20multi-language%20Hello/A%20multi-language%20Hello.kt
源碼地址:
https://github.com/Simonhy/Kotlin
其他的github上文章
https://github.com/Simonhy

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,841評論 25 708
  • afinalAfinal是一個android的ioc,orm框架 https://github.com/yangf...
    passiontim閱讀 15,489評論 2 45
  • 好幾年前,我就看了斯蒂芬·金的《寫作這回事:創作生涯回憶錄》,在眾多談論寫作的書中,這本特別真誠,因為它是在金先生...
    劉淼閱讀 1,270評論 3 18
  • 我得媽那邊去了。 一句話,你就走了,現在我們的生活跟合租的陌生人沒有多大的區別了。 晚上我回家你已經睡了,我就睡女...
    葉子上的蟲子閱讀 232評論 0 0
  • [愛與成長]20170708 學習力6踐行Day 54 早上:①用比巴聽sss-cd1從第15首聽到第10首 ②聽...
    Lynn_1f06閱讀 93評論 0 0