您的位置:首页 > 移动开发 > Android开发

Kotlin项目练习记录 续

2017-08-21 16:41 302 查看

Kotlin项目练习记录 续

lateinit字面意思,延迟初始化

对于非空类型的属性是必须初始化的,该字段就是延迟初始化用的。

lateinit var data :String  //使用时候注意需要是var类型的


var和val的区别

//val为常量,类似于java中的final
val regEx = "[^0-9]"
//一般的变量,默认为null
var test:String?=null
//默认是false
var mIsRefresh: Boolean = false


adapter的使用遇到的问题

//你会发现无法导入Bean,这是因为没有init方法
class RankAdapter(context:Context,list: ArrayList<Bean>):BaseAdapter(){
//添加这个方法后就可以导入了
init{
}
}


字符串的拼接方式 ($符号)

holder?.tv_time?.text = "$category / $realMinute'$realSecond''"


三元运算符

list?.size?:0     //size 等于0 或者 返回size


更方便的使用xml中的id

//可以直接使用但是要注意导包的问题
refreshLayout.setOnRefreshListener(this)


for循环的简单使用

//拿到列表去
bean?.itemList?.forEach {
it.data?.let { it1 -> mList.add(it1) }
}


匿名函数的写法

//view的点击事件
view.setOnClickListener(object:OnClickListener{
override fun onClick(v:View){
//do something
toast("click")
}
})
//也可如下定义,接受一个view  返回Unit(没有东西)
fun setOnClickListener(listener:(View->Unit))
//所以点击事件也可以简化写
view.setOnClickListener({view->toast("click")})
//甚至可以更简化
view.setOnClickListener({toast("click")})
//如果函数最后一个参数是一个函数
view.setOnClickListener(){toast("click")}
//如果这个函数只有一个参数
view.setOnClickListener{toast("click")}


操作符简单使用

举例说明:

bean.issueList!!
.flatMap { it.itemList!! }//遍历,为每个元素创建一个结合,最后把所有集合合并到一个集合
.filter { it.type.equals("video") }//过滤所有符合条件的元素
.forEach { mList.add(it) }//遍历所有元素执行制定操作(mList.add(it)这个操作)


let的简单介绍

调用某对象的let函数,则该对象为函数的参数。在函数块内可以通过 it 指代该对象。返回值为函数块的最后一行或指定return表达式。

举个例子:

//输出结果为hello world
"hello world".let{print(it)}
//稍微复杂了一点的,it1==it.data,连续的也是不错的^_^
bean.itemList?.forEach { it.data?.let { it1 -> mList.add(it1) }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Kotlin android