Android Kotlin环境使用ButterKnife

作者: 进击的包籽 | 来源:发表于2018-03-28 08:18 被阅读259次

Butter Knife 黄油刀大家应该都挺熟悉的,有这个之后,就不用写一堆的findViewById,体力活,最近试着玩玩Kotlin语言,也就尝试在Kotlin语言环境下使用ButterKnife,有一点小问题,解决并分享一下。

先看看java环境的用法

  1. 安装插件,然后重启Android studio。


    安装插件.jpg

2.使用,点击一下在setContentView(R.layout.activity_main);然后快捷键Alt+insert。


Alt+insert.jpg

3.使用。


使用.jpg

4.完成

@BindView(R.id.circleView)
CircleView circleView;
@BindView(R.id.tv_test)
TextView tvTest;
 
@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ButterKnife.bind(this);
}
 
/*
* 多个控件点击事件,会有大括号包起来,中间逗号隔开
* */
@OnClick({R.id.circleView, R.id.tv_test})
public void onViewClicked(View view)
{
    switch (view.getId())
    {
        case R.id.circleView:
            break;
        case R.id.tv_test:
            break;
    }
}
 
@Override
protected void onDestroy()
{
    ButterKnife.bind(this).unbind();
    super.onDestroy();
}

Kotlin环境

1.随意新建一个kotlin文件


new kotlin.jpg

2.然后工程会有几个地方变化


多了Configure.jpg ok.jpg module.jpg project.jpg

3.添加对kotlin的支持

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
 
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    //控件插件
    implementation 'com.jakewharton:butterknife:8.8.1'
    kapt 'com.jakewharton:butterknife-compiler:8.8.1'
    compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
}
添加kotlin支持.jpg

4.使用,直接用就好,不用再BindView了。


不需要BindView了.jpg
直接使用.jpg

5.注意要对应的xml,以免同样的控件id引起空指针异常。

注意.jpg

相关文章

网友评论

  • 程序浪:如果一个页面特别多控件id的时候,
    怎么解决这个问题呢,
    直接使用id进行编辑
    后期维护起来简直不敢想象
    进击的包籽:@albertlii 如果是只用kotlin,我还是申明控件,不直接用id,如果是加上MVVM,用databinding绑定了控件,然后操作databinding,用起来感觉和直接写控件id差不多,但一个databinding对应一个页面,个人感觉就不会像写控件id那么乱了。
    码途有道:最近在使用kotlin的时候,也在犹豫需不需要按照常规来,做一下控件变量申明,不然直接使用id调用控件,在后期维护或者团队一起开发的时候,感觉比较混乱?楼主你觉得怎么处理好?
    进击的包籽:那无论哪种方式,要使用的控件肯定是有id,或者使用MVVM,丢给ViewModel去处理
  • IT人故事会:文章很用心,我会继续支持
    进击的包籽:谢谢支持:grin:

本文标题:Android Kotlin环境使用ButterKnife

本文链接:https://www.haomeiwen.com/subject/jcqecftx.html