当前位置: 代码迷 >> 综合 >> ButterKnife 基本使用
  详细解决方案

ButterKnife 基本使用

热度:83   发布时间:2024-01-15 10:18:52.0

导语

在Android的日常开发中,最烦的应该是写一大堆的findViewById()了,偏偏这个还不得不写。总想让工具来解放我们的双手,能有多懒就尽量有多懒,最好能实现人脑和电脑之间通过脑电波传输,然后啪啪啪代码就写好了(或许若干年之后可以实现吧)。有一位叫Jake Wharton打大神就带领我们迈进了一步,再也不用写findViewById()了(666666)。Jake Wharton大神整出了一个叫ButterKnife的框架,有了它妈妈再也不用担心我会加班了(小朱,明天要给软件,今晚加班把那些bug解了。尼玛…..)

基本使用

大神扔给你个框架,最先要学会的是什么?明白框架的实现原理?大神会考虑到你们凡人的智商的,“这有个demo,看看怎么用吧”然后就腾云驾雾走了。把大象装进冰箱分几步?同学你太机智了,对,分三步。那ButterKnife使用分几步?两步就够了。

  • 配置编译环境
    干我们这一行,总离不开一件事:陪环境,从你进公司的第一天开始,你就开始干这事了。ButterKnife的使用也要先配置好编译环境,首先你得在你的project下的build.gradle文件中增加
    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8

    然后在你的module下的build.gradle文件中增加
    apply plugin: 'android-apt

    module下的build.gradle文件中的dependence增加

    compile 'com.jakewharton:butterknife:8.2.1'  
    apt 'com.jakewharton:butterknife-compiler:8.2.1'
  • 开始使用
    现在开始上酸菜了(哦,不好意思,是demo),简单的demo,布局文件中有两个元素:

    <Buttonandroid:id="@+id/btn_test"android:layout_below="@id/recyclerview"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/test"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/tv_info"android:layout_below="@id/btn_test"android:textSize="28sp"/>

    在“setContentView(R.layout.activity_mani);”语句后面加上
    ButterKnife.bind(this);

    接下来就是一键完成变量声明以及findViewById()的操作了,在onCreate()方法中选中布局文件,右键Generate

    然后Generate ButterKnife Injections

    再然后你就看到了一段神奇的代码自动生成了,

    @BindString(R.string.test) String testInfo;
    @BindView(R.id.btn_test) Button btnTest;

    想给Button设置点击事件怎么办,so esay!!

    @OnClick(R.id.btn_test) void setInfo(){tvInfo.setText(testInfo);
    }
    

    testInfo是哪里来的,好吧,实际上它是在string.xml文件中定义的一个字符串,那是怎么来的呢?太他妈简单了!!!

    @BindString(R.string.test)
    String testInfo;//test在String.xml中的定义
    <string name="test">Test</string>

    这是不是少些太多代码了啊….好开心啊

结束

ButterKnife的基本使用就举这么一个例子了,是不是它只能干这些呢?too young,too simple!!!那还有哪些用法?我不告诉你,自己先膜拜大神去吧,我要改bug去了(其实是我用得少,hahaha….滑板鞋,走你……)