zoukankan      html  css  js  c++  java
  • 依赖注入框架之butterknife

    主页: https://github.com/JakeWharton/butterknife


    用途: 主要用来简化各种初始化控件的操作


    配置:
    1. 在app/build.gradle文件中dependencies节点添加如下代码
        compile 'com.jakewharton:butterknife:7.0.1'
    2. 在Android Studio中点击 File-->Settings-->Plugins-->Browse repositories,搜索Android ButterKnife Zelezny插件,安装成功以后重启Android Studio.
    3. 在布局文件中添加控件的时候,所有需要在Activity/Fragment代码中进行控制的控件都要添加id属性
    4. 在Activity/Fragment 代码中,将鼠标放在布局文件的引用上(即R.layout.activity_main中的activity_main上面),此时按快捷键Alt + Insert或鼠标右键选择Generate
    5. 在弹出的菜单中选择Generate ButterKnife Injections,此时会再次弹出一个对话框
    6. 新的对话框中点击confirm后直接生成控件的引用,代替findViewById
    7. 如果需要处理控件的点击事件,可以选择对应控件的OnClick复选框.
    8. 如果是ListView的Item视图,还可以选择左下角的Create ViewHolder复选框,生成ViewHolder静态类.


    使用步骤

    第一步:添加依赖

    在Android studio中在app的build.grade文件中加入下面二行代码:

    compile 'com.jakewharton:butterknife:8.4.0'   
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
    

     studio会自动联网下载,

    第二步:安装插件

    打开File->Settings->plugins,在搜索栏内搜索ButterKnife,要是没有引入该软件,就install,将这个软件打钩选中使用,

    第三步:使用

    在onCreate方法中(一定要在setContentVIew之后)调用ButterKnife.bind(this)(注一般也会自动生成,如果没有生成一定要手动写入);然后就可以自动生成代码了

    生成方式:选中布局文件的名字,右击选择Generate->Generate BUtterknife injecktions

    android编程的时候,经常会遇到findViewById的问题,尤其是当你的布局中的view较多的时候,initView是一个很耗时的过程,针对这一问题,ButterKnife可以完美解决,大大提高编程的效率效果如下图:


    下面我来介绍一下在项目中的配置过程:

    方法一:在gradel里面直接搜

    打开Android Studio的File->Project Structure

    点击左边菜单栏的app选项,并且点击右边上方的Dependencies这个Tab选项,然后点击右上角"加号"选择"1 Library dependency",然后在弹出框中直接搜butterknife,就可以搜到,然后选择引入:

    引入之后会在项目的build.grade文件下的dependencies下生成:

    第一步:compile 'com.jakewharton:butterknife:8.4.0'(位置1)这样一行代码,

    第二步:在dependencies 下面加入这样一行代码:apt 'com.jakewharton:butterknife-compiler:8.4.0' (位置2)

    第三步:在该文件根目录最上面加入这样一行代码:apply plugin: 'com.neenbedankt.android-apt'(位置3),

    第四步:并同时在整个Project的build.grade文件的buildscript的dependencies下面加入这样一行代码:classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'(位置4),然后点击编译器右上角的Sync Now同步修改:

    项目的build.grade文件:

    整个Project的的build.grade文件:

    Sync Now:

    然后最关键的一步:打开File->Settings->plugins,在搜索栏内搜索ButterKnife,要是没有引入该软件,就install,将这个软件打钩选中使用:(没有这一步不能自动生成代码)

    然后是最后一步,在使用前在onCreate方法中(一定要在setContentVIew之后)调用ButterKnife.bind(this);然后就可以自动生成代码了,生成方式:选中布局文件的名字,右击选择Generate->Generate BUtterknife injecktions,会弹出来下面这个对话框:

    然后在Variable Na....一栏修改默认的一些对象的一些名字,点击OK,就生成了相应的代码了.

    最后看一下最终效果:


    技巧
    * 在AndroidStudiopluginsandroidlib emplatesgradle-projectsNewAndroidModule ecipe.xml.ftl中添加如下代码,以后新创建的工程默认会添加Butterknife依赖:

      <dependency mavenUrl="com.jakewharton:butterknife:7.0.1" />

     

  • 相关阅读:
    z-index只能在position属性值为relative或absolute或fixed的元素上有效。
    margin负值得理解
    <em>标签与<strong>标签区别
    文字的垂直居中
    data-*的定义和用法
    one()方法的介绍
    <meta name="application-name" content="优酷网" /> 是什么意思?
    <meta property="qc:admins" content="70003766576320416375" />是什么意思?具体功能是什么?
    head部分关于搜索引擎
    java第三次作业
  • 原文地址:https://www.cnblogs.com/loaderman/p/6472337.html
Copyright © 2011-2022 走看看