学习内容
《kotlin-for-android-developers》
因为课本其实对于现在的Kotlin来说其实已经有点旧了。所以很多细节都不一致了,看个大概就好了
样例:http://download.csdn.net/download/azhansy/9517880
创建一个Kotlin工程
就一般的创建project,没啥需要注意的,语言选择Kotlin就可以了。
- Android Studio 3.0 之后,build.gradle的dependencie从
compile
变成了implementation
http://blog.csdn.net/qq_26585943/article/details/73739427 - RecyclerView 不存在:
解决办法:http://blog.csdn.net/a10615/article/details/51268022
//在App的build.gradle里面添加一行(版本号与appcompat-v7的版本号一致)
implementation 'com.android.support:recyclerview-v7:26.1.0'
- Adapter
- 里面的设置,之前是没有判空的,现在都需要添加?来进行判空操作。
- 如何实现自定义ViewHolder
- as
as这种来定义控件的方式目前被舍弃了,所以选择其他方式 - TODO
如果代码中存在TODO,代码运行到这回抛未实现的异常,提醒你这边还未做!这个还是非常人性化的设计。 - Anko
- 布局上替代xml用代码生成UI布局,不过这种对于我们习惯了用xml开发的人员来说,是有点别扭的,需要先写好xml再转换为anko写法。
- anko 目前支持到sdk25,还没有支持26的,所以这里,我调整了project的sdk到25。anko这个还挺麻烦的,必须要和sdk版本号一致,这点需要注意。
官方:https://github.com/Kotlin/anko
sample:https://github.com/CysionLiu/anko-sample
- 操作符
这个跟之前的java还是挺一致的,用到的时候查一下就好了。
=== 就是java的 ==;!==就是java的!= - picasso
https://github.com/square/picasso - 修饰符
- 默认是public
- private 仅当前类可使用
- protected 当前类+继承类使用
- internal定义包成员的话,整个Module可用。各个Module不连通。(AS中Module的概念=Eclipse的Project)
- constructor 构造器
其实我一直都没这么明白构造器是干什么的? - Kotlin Android Extensions
- 目前包括view。
Module的build.gradle里面需要添加
dependencies {
//现在不需要添加这个了,已经包含在原本的引入中
classpath "org.jetbrains.kotlin:kotlinandroidextensions:$kotlin_version"
}
- 在xml里面定义id的时候使用驼峰原则applePen