0基础实现简单的Kotlin ListView
今年的谷歌大会上,Kotlin 被定义为了 Android 开发的官方使用语言之一,基于 JVM 编辑,以后很有可能会发展为主流的开发语言。应部门老大的要求,今后的开发都用 Kotlin,真真让小菜我吐一口血啊~
0基础的我,做一个0技术含量的例子,熟悉一下基本的 Kotlin 语法,实现一个最基础的 ListView。
1. Kotlin 的配置,网上的教程好详细,这里简单介绍一下
1.1 File->Setting->Plugins 中下载安装 Kotlin 的插件;
1.2 在 Project 空间的 build 中添加 Kotlin 的配置信息,分别在 buildscript 中添加依赖;
Project 中 build1.3 在子 Module 中的 build 中添加相应的依赖;
Module 中 build1.4* 添加这个:apply plugin: 'kotlin-android-extensions' 时可省略掉 findViewById 的方式获取控件时,用 AnKo 方式使代码更简洁
2. ListView 的实现
2.1 布局 xml 跟以前的方式是一样的,包括基本的 ListView/HeaderView/FooterView 等;
2.2 实体类,如果不需要特别需求重写get/set方法可以直接简单用这种属性初始化即可;
class HomeLeftBean {
var leftName: String? = ""
var leftIcon: Int = 0
var leftIconName: String? = ""
}
2.3 因为添加了 apply plugin: 'kotlin-android-extensions',所以控件可以直接根据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,会报空指针
所以大家要根据情况使用
2.5 列表 item 的单击点击事件中,如果添加了 HeaderView,position 需要 -1 操作
2.6 val 是不可变类型,个人理解类似于 final var 是可变类型
2.7 控件的显隐性:button.visibility = View.GONE
效果总之,说的很杂很乱,因为确实接触不多,Demo很简单,确实比Java在代码的便捷性上高了很多。
之后还会继续研究下去,理解不对的地方,期望大家能多给建议。谢谢大家!