Konlin基础五

1. ButterKnife简介
ButterKnife是一个专注于Android系统的View注入框架,它通过在编译期生成class文件,为开发者自动完成findViewById方法的调用,对注解的View进行实例绑定。
ButterKnife最基本的使用方法分为4步:
1.在build.gradle中添加依赖


    //Java中使用注解处理器不需要添加这个插件
    //kotlin中使用注解处理器需要添加这个插件,否则只能识别java的注解,不能识别kotlin的注解
    //kapt插件能够同时识别kotlin注解和java注解
    apply plugin: 'kotlin-kapt'

    implementation 'com.jakewharton:butterknife:10.1.0'
    //kotlin中,添加注解处理器的依赖写法用annotationProcessor 
    //annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'
    //kotlin中,添加注解处理器的依赖写法用kapt
    kapt 'com.jakewharton:butterknife-compiler:10.1.0'

2.对Activity中的View添加@BindView注解。

    @BindView(R.id.tv)
    lateinit var tv: TextView
1
2
3.在Activity的onCreate方法中调用setContentView之后,调用ButterKnife.bind(this)对所有的添加了注解的View进行实例绑定。

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_recycler_view)
        ButterKnife.bind(this)
    }

4.在Activity中无需调用findViewById方法对View进行赋值,即可直接使用。

    tv.text = "Hello World!!!"
1
本文要实现的功能就是这样一个最基础的简易版ButterKnife。

      

2. 正文前的说明
Kotlin提供的kotlin-android-extensions插件已经提供了很方便的View自动绑定功能,所以使用Kotlin时是没必要使用ButterKnife的(个人观点)。
本文的目的是介绍和记录在kotlin中APT(Annotation Processing Tool,注解处理器)的使用方法,以及如何使用KotlinPoet自动生成kotlin代码,以及在这期间自己踩得一些坑,如果只关心代码实现,可以直接跳转到最后一章,或者查看源代码。
以下内容纯属个人见解结合网上资料完成。存在错误,实属正常,如有不足,欢迎指正。
3. 自动绑定View的原理
实现View的自动绑定需要3个类之间进行合作。

首先,Activity中提供带绑定的View,同时调用ButterKnife.bind(this)完成绑定。代码见ButterKnife简介中的第三代码段

其次,ButterKnife类中提供静态方法bind(activity:Activity)在该方法中通过反射实例化一个Binding类,同时传入activity作为实例化的参数,这个Binding类与具体传入的Activity类相关(即,一个Activity对应一个Binding类,Binding类的命名规则:ButterKnife_**_Binding,**为Activity的类名)。具体代码如下:

  • 15
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值