怎么去使用Kotlin Android Extensions

如果你还记得,现在项目已经准备好去使用Kotlin Android Extensions。当我们创建这个项目,我们就已经在build.gradle中增加了这个依赖:

buldscript{
    repositories {
        jcenter()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
    }
}

唯一一件需要这个插件做的事情是在类中增加一个特定的"手工"import来使用这个功能。我们有两个方法来使用它:

Activities或者FragmentsAndroid Extensions

这是最典型的使用方式。它们可以作为activityfragment的属性是可以被访问的。属性的名字就是XML中对应view的id。

我们需要使用的import语句以kotlin.android.synthetic开头,然后加上我们要绑定到Activity的布局XML的名字:

import kotlinx.android.synthetic.activity_main.*

此后,我们就可以在setContentView被调用后访问这些view。新的Android Studio版本中可以通过使用include标签在Activity默认布局中增加内嵌的布局。很重要的一点是,针对这些布局,我们也需要增加手工的import:

import kotlinx.android.synthetic.activity_main.*
import kotlinx.android.synthetic.content_main.*

ViewsAndroid Extensions

前面说的使用还是有局限性的,因为可能有很多代码需要访问XML中的view。比如,一个自定义view或者一个adapter。举个例子,绑定一个xml中的view到另一个view。唯一不同的就是需要import

import kotlinx.android.synthetic.view_item.view.*

如果我们需要一个adapter,比如,我们现在要从inflater的View中访问属性:

view.textView.text = "Hello"