• 依赖注入框架之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" />

     

  • 相关阅读:
    【转载】 学习《强化学习的落地实践》有感
    如何使用工具下载B站非会员视频(下载B站免费web视频)
    强化学习、分布式计算方向的phd毕业后去企业的要求
    【转载】 自然梯度法(Natural Gradient)
    【转载】 费舍尔信息矩阵及自然梯度法
    【转载】 梯度的直观理解_谈谈优化算法之一(动量法、Nesterov法、自然梯度法)
    第二章 描述万维网的资源-RDF
    第一章 语义网的愿景
    知识工程及语义网技术 2020-04-09 (第二节)-基于本体的知识管理
    RDF:知识图谱里的知识表示
  • 原文地址:https://www.cnblogs.com/loaderman/p/6472337.html
Copyright © 2020-2023  润新知