初步使用kotlin,记录一些和java有些差异的地方,以便以后查看。
首先是List集合的问题,在kotlin中,直接用var list List = List()
或者var mList: List = ArrayList()在后面的使用中,发现没有添加元素的方法的,
这使用的是var mList ArrayList = ArrayList(),之后就可以添加元素了。
然后就是for循环的差异,java中直接给定一个数字大小,进行比较久行了,
而kotlin中是要用
for (i in 0..5) {
}
方式去循环,而且i也不用去指定或者实例出来,直接由0..5控制起始值和终止大小
还有内部类也有些差异,是需要用 inner申明一下这是内部类,然后要获取主类,最后在调用获取到的主类中的方法在内部类中使用
//创建一个提交信息的activity,我需要在Adapter中减少这个mList的数量然后更新adapter
class InputUserInfoActivity : BaseActivity() {
var mList: ArrayList<String> = ArrayList<String>();
}
//首先我就要通过inner 声明这个MyAdapter是一个内部类,并且获取到外部的类
//之前我认为声明为内部类之后,还需要innerMainActivity()这种方法去调用Activity中的属性,
//之后再Fragment中使用的时候,发现,只要声明为了内部类,好像就是直接可以使用里面的属性了,下面的这种
//写法就是多余的了
inner class MyAdapter(list: MutableList<String>, context: Context) : MyBaseAdapter<String>(list, context) {
fun innerMainActivity(): InputUserInfoActivity {
var t = this@InputUserInfoActivity //获取外部类的成员变量
return t
}
}
//在Adaoter的控件点击事件中,就通过获取到外部类成员变量的方式进行操作
iv_del.setOnClickListener {
innerMainActivity().mList.removeAt(position)
mAdapter!!.notifyDataSetChanged()
}
其他的一些书写方式结合java起来感觉很容易,这几个是觉得是挺有趣的变动先记录一下。