Kotlin项目练习记录 续

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) } 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值