使用butterknife轻松定义控件

你还在使用findviewbyid么?使用butterknife轻松定义控件

ButterKnife简介
从大量的findViewById()和setonclicktListener()解放出来,其对性能的影响微乎其微(查看过Butter Knife的源码,其自定义注解的实现都是限定为RetentionPolicy.CLASS,也就是到编译出.class文件为止有效,在运行时不额外消耗性能,其是通过java注解自动生成java代码的形式来完成工作),其也有一个明显的缺点,那就是代码的可读性差一些,但了解了之后,上手也很快。。。

目前ButterKnife的最新版本是7.0.1

用法:
首先在项目的build.gradle文件中添加一句话:

compile 'com.jakewharton:butterknife:7.0.1'  
然后点击右上角的sync now,android studio就会自动下载ButterKnife

要想达到一键绑定控件的效果还需要安装Android ButterKnife Zelezny插件,
打开Android Studio设置面板—>Plugins—->可以看到有个搜索框我们输入ButterKnife—–>然后点击下面的Browse Repositories—->选择Android ButterKnife Zelezny—->安装—>重启Android Studio—–>完成

为了演示绑定控件,写了几个控件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"  
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"  
    android:paddingRight="@dimen/activity_horizontal_margin"  
    android:paddingTop="@dimen/activity_vertical_margin"  
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">  

 <ImageView  
     android:id="@+id/testImageId"  
     android:layout_width="wrap_content"  
     android:layout_height="wrap_content" />  
    <TextView  
        android:id="@+id/text"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content" />  
    <Button  
        android:id="@+id/btn"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content" />  
    <EditText  
        android:id="@+id/edit"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content" />  

</RelativeLayout> 

传统做法我们是在Activity上一个个find出来,就只有这几个控件还好,但是我们写程序的时候有些界面远远不止这几个控件~~难道我们就一个个地find出来吗?
看过布局文件我们回到Activity.java
首先在setContentView(XXX)的括号内容右击:
这里写图片描述

选择Generate:

这里写图片描述

选择Generate ButterKnife Injections:

这里写图片描述

到这里可以看到列出了当前布局文件可以被find出来的控件,如果不需要再.java文件使用的控件可以不勾上,默认情况下控件命名与布局里的id名称一致。
我们再看左下角有一个Create ViewHolder,可以知道,ButterKnife也可以用在创建ViewHolder上,这里不再详述,接下来我们点击Confirm

界面上展示

这样就可以将所有界面上带有id属性的空间全部找出来而不是find出来的

注:一定要在oncreat里边加上初始化


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值