在学习用Kotlin在AS里编写程序的时候,现在高版本的AS已经把Kotlin-android-extensions废除了,原来这个插件是方便使用Kotlin语言的人不用写findViewById()这个方法来寻找控件的。
现在废除了,我们也有应对措施
一、在Gradle/build.gradle(Moudle)这个目录下加入以下语句
buildFeatures { viewBinding = true } dataBinding { enabled = true }
二、在添加完语句之后呢,点击右上方蓝色区域的 "Sync Now",等待文件重新配置完成 。
三、在你新建的任何一个Acitviy里,比如MainActivity里面
onCreateView方法里加入以下代码来调用布局内的控件
//如果我的布局文件是activity_main.xml,那么我这个布局生成的Binding类的类名便是这个布局文件的驼峰式、、加上Binding
class MainActivity:AppCompatActivity()
{
override fun onCreate(saveInstanceState:Bundle?){
val UiBinding = ActiviytMainBinding.inflate(layoutInflater)
//在setContenView之后,变量UiBinding可以捕捉到对应布局文件的所有控件id,以点号"."的形式
setContentView(UiBinding.root)
//假设有一个Button的id是button1,要调用它就如下行所示
UiBinding.button1.setOnClickListener(){
//在这里添加相关逻辑
}
}
}
?四、最后
?在我们把buildFeatures,d
ataBinding这两个属性添加进去,并应用后,会生成所有布局文件驼峰式名称的一个Binding类,它调用了一个inflate(layoutInflater)方法,布局文件所有控件都被这个方法生成的变量"统一"了起来一样,这样我们就无需再去写findViewById,在调用的控件不多时效果还不明显,试想你要调用的控件太多了,真的要每一个都写一遍这个方法吗。
|