Kotlin 中Butterknife 和Android 中使用butterknife

因为不太熟悉kotlin 所以就想写一个混编的Android  的测试

既有kotlin 又有android 的原生

目的:想了解下Kotlin ,和使用下Kotin中传说中的语法糖,别以后遇到大神写项目用kotlin 我一脸懵逼

看下配置  :

1.Android  中使用ButterKnife

       1.1 在Module的build.gradle中配置

//注解
implementation 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

        1.2在Project(项目)的build.gradle中配置

   //插件
   classpath 'com.jakewharton:butterknife-gradle-plugin:8.8.1'

2.Kotlin中使用ButterKnife

        2.1在Module的build.gradle中配置

 
  
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

implementation 'com.jakewharton:butterknife:8.8.1'
kapt "com.jakewharton:butterknife-compiler:8.8.1"
api 'com.mapzen:on-the-road:0.8.1'

          2.2在Project(项目)的build.gradle中配置

classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.51"
classpath "org.jetbrains.kotlin:kotlin-android-extensions:1.1.51"

3.Kotlin基本使用

        3.1基类配置

abstract class Base1Aty : BaseActivity() {
    var unbinder: Unbinder? = null;
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        unbinder = ButterKnife.bind(this)
        initView()
    }

    protected abstract fun initView()
    override fun onDestroy() {
        super.onDestroy()
        unbinder!!.unbind()
    }
}

        3.2控件使用

class KotlinAty : Base1Aty() {
    //使用ButterKnife查找控件
    @BindView(R.id.tv_test) lateinit var textView :TextView
    override fun initView() {
        stopProgressDialog()
    }

    override fun getLayoutId(): Int {
        return R.layout.aty_kotlintest
    }

    override fun requestData() {
        startProgressDialog()
    }
    /**
     *  Kotlin 支持,高阶函数和Lambda表达式
     *  这里如果不熟悉的话,也可以进行百度一下,这里就不做太多是解释了
     */
    @OnClick(R.id.tv_test)
    fun onClick(view : View){
        when(view.id){
            R.id.tv_test ->{
              showTost("真没意思就这样玩么")
            }
        }
    }

}

你可能感兴趣的:(Android)