??????? 今年的谷歌大會(huì)上,Kotlin 被定義為了 Android 開發(fā)的官方使用語(yǔ)言之一,基于 JVM 編輯,以后很有可能會(huì)發(fā)展為主流的開發(fā)語(yǔ)言。應(yīng)部門老大的要求,今后的開發(fā)都用 Kotlin,真真讓小菜我吐一口血啊~
??????? 0基礎(chǔ)的我,做一個(gè)0技術(shù)含量的例子,熟悉一下基本的 Kotlin 語(yǔ)法,實(shí)現(xiàn)一個(gè)最基礎(chǔ)的 ListView。
1.? Kotlin 的配置,網(wǎng)上的教程好詳細(xì),這里簡(jiǎn)單介紹一下
1.1? File->Setting->Plugins 中下載安裝 Kotlin 的插件;
1.2? 在 Project 空間的 build 中添加 Kotlin 的配置信息,分別在 buildscript 中添加依賴;

1.3? 在子 Module 中的 build 中添加相應(yīng)的依賴;

1.4*? 添加這個(gè):apply plugin: 'kotlin-android-extensions' 時(shí)可省略掉 findViewById 的方式獲取控件時(shí),用 AnKo 方式使代碼更簡(jiǎn)潔
2.? ListView 的實(shí)現(xiàn)
2.1? 布局 xml 跟以前的方式是一樣的,包括基本的 ListView/HeaderView/FooterView 等;
2.2? 實(shí)體類,如果不需要特別需求重寫get/set方法可以直接簡(jiǎn)單用這種屬性初始化即可;
??????? class HomeLeftBean {
??????????????? var leftName: String? = ""
??????????????? var leftIcon: Int = 0
??????????????? var leftIconName: String? = ""
??????? }
2.3? 因?yàn)樘砑恿?apply plugin: 'kotlin-android-extensions',所以控件可以直接根據(jù)id使用
?????? myAdapter = KotlinAdapter(mDataList, this)
?????? wave_lv.adapter = myAdapter
Kotlin 中的獲取控件方式可用:
var middletv: TextView = viewItem.findViewById(R.id.item_middle_tv) as TextView
2.4? bean?.name? 如果為 null,什么也不用做
?????? bean!!.name 如果為 null,會(huì)報(bào)空指針
?????? 所以大家要根據(jù)情況使用
2.5? 列表 item 的單擊點(diǎn)擊事件中,如果添加了 HeaderView,position 需要 -1 操作
2.6? val 是不可變類型,個(gè)人理解類似于 final? var 是可變類型
2.7? 控件的顯隱性:button.visibility = View.GONE

? ? ?? GitHub Demo? ??????
??????? 總之,說的很雜很亂,因?yàn)榇_實(shí)接觸不多,Demo很簡(jiǎn)單,確實(shí)比Java在代碼的便捷性上高了很多。
??????? 之后還會(huì)繼續(xù)研究下去,理解不對(duì)的地方,期望大家能多給建議。謝謝大家!