Android:一键find控件,从此告别繁琐的findViewById

来源:互联网 发布:Mac电脑老弹广告 编辑:程序博客网 时间:2024/05/16 08:14


记得之前写过一篇博客叫做:





你还在苦逼地findViewById吗?使用ButterKnife从此轻松定义控件
此文是介绍在eclipse环境下使用ButterKnife的,相比传统的findViewById确实简单了点~但是笔者认为还不够简单~~
在谷歌停止对ADT+Eclipse停止更新之后~笔者还苦苦在Eclipse坚持了几个月终于开始转移到Android Studio上撸代码~~
因此本文也是在Android Studio基础上写的,如果有用Eclipse可以参考:
你还在苦逼地findViewById吗?使用ButterKnife从此轻松定义控件


ButterKnife简介



前面的文章已经介绍过了这里不介绍了!!!


ButterKnife+Android ButterKnife Zelezny组合

目前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----->完成~

好了到此为止就完成了。
下面我们来具体看看ButterKnife有多方便:
为了演示绑定控件,笔者写了几个控件:
<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/testTextId"        android:layout_width="wrap_content"        android:layout_height="wrap_content" />    <Button        android:id="@+id/testBtnId"        android:layout_width="wrap_content"        android:layout_height="wrap_content" />    <EditText        android:id="@+id/testetId"        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




就这样把所有控件"find"出来了~~只不过是通过注解的方式find出来的(笔者在前面的博客也介绍过注解,有兴趣的可以去看看)~~是不是好方便呢?虽然没有标题所说那样“一键”搞定但是~随便点两下就能够把以前写半天才find完的控件一下子“find”出来了~是不是觉得好爽~~





2 1