怎么去使用Kotlin Android Extensions

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

  1. buldscript{
  2. repositories {
  3. jcenter()
  4. }
  5. dependencies {
  6. classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
  7. }
  8. }

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

Activities或者FragmentsAndroid Extensions

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

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

  1. import kotlinx.android.synthetic.activity_main.*

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

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

ViewsAndroid Extensions

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

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

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

  1. view.textView.text = "Hello"