怎么去使用Kotlin Android Extensions
如果你还记得,现在项目已经准备好去使用Kotlin Android Extensions。当我们创建这个项目,我们就已经在build.gradle
中增加了这个依赖:
buldscript{
repositories {
jcenter()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
}
}
唯一一件需要这个插件做的事情是在类中增加一个特定的”手工”import
来使用这个功能。我们有两个方法来使用它:
Activities
或者Fragments
的Android Extensions
这是最典型的使用方式。它们可以作为activity
或fragment
的属性是可以被访问的。属性的名字就是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.*
Views
的Android Extensions
前面说的使用还是有局限性的,因为可能有很多代码需要访问XML中的view。比如,一个自定义view或者一个adapter。举个例子,绑定一个xml中的view到另一个view。唯一不同的就是需要import
:
import kotlinx.android.synthetic.view_item.view.*
如果我们需要一个adapter,比如,我们现在要从inflater的View中访问属性:
view.textView.text = "Hello"