因为不太熟悉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("真没意思就这样玩么") } } } }