Android中butterknife的使用与自动化查找组件插件详解
作者:Android架构师丨小熊 发布时间:2021-09-18 06:58:36
前言
Android开发中经常使用findViewById来获取控件然后进行一些列操作,当控件太多的时候代码就非常臃肿,今天就来学习一个新的开源库ButterKnife,真的可以帮助我们高效,快捷的开发,让我们的代码更加简洁。
首先我们来把ButterKnife集成在我们的项目中:ButterKnife的GitHub官方地址:github.com/JakeWharton…
一、集成分为了两部分:
1.仅仅在App主工程使用:
在App的 build.gradle 中添加如下代码:
android {
...
// Butterknife requires Java 8.
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation 'com.jakewharton:butterknife:10.2.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.0'
}
然后将其应用到您的模块中:也在在App的 build.gradle中增加
apply plugin: 'com.android.library'//这是你自己的 检查下误复制
apply plugin: 'com.jakewharton.butterknife'
2.如果在Library projects中使用:
在Project的 build.gradle 中添加如下代码:
buildscript {
repositories {
mavenCentral()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.1'//这是你的gradle版本
classpath 'com.jakewharton:butterknife-gradle-plugin:10.2.0'
}
}
library中使用需要使用,如下:这就已经集成玩可以使用
class ExampleActivity extends Activity {
@BindView(R2.id.user)
EditText username;
@BindView(R2.id.pass)
EditText password;
...
}
二、如接下来介绍下的一个ButterKnife插件可以自动化查找组件并初始
1.在线引用
引用:Ctrl+Alt+S -> Plugins ->搜索 Android ButterKnife Zelezny -> Install plugin form disk ,从本地引入我们下载的jar包,添加成功后需要重启Android studio
2.使用
3.添加成功后,
把光标定位在activity_main的后面,注意是括号里边 前提是你在xml布局中命名好组件
setContentView(R.layout.activity_main);
右击选择Generate... 选择最后一行 或者使用快捷键Alt + Insert选择
低级Confirm就可以自动化生成代码了 前提是你在xml布局中命名好组件
总结
来源:https://www.jianshu.com/p/2f95c7ba2b6c
猜你喜欢
- 关闭 IDEA 的自动检查更新(截图idea 2020 2.x)idea 右下角会有这样的更新提示2. 关闭 idea 自动检查更新取消勾选
- 前言我们在配置Spring Xml配置文件的时候,可以在文件路径字符串中加入 ${} 占位符,Spring会自动帮我们解析占位符,这么神奇的
- 一、错误处理原理分析使用SpringBoot创建的web项目中,当我们请求的页面不存在(http状态码为404),或者器发生异常(http状
- 本文实例讲述了Hibernate批量处理海量数据的方法。分享给大家供大家参考,具体如下:Hibernate批量处理海量其实从性能上考虑,它是
- 一、简介什么是线程池?池的概念大家也许都有所听闻,池就是相当于一个容器,里面有许许多多的东西你可以即拿即用。java中有线程池、连接池等等。
- 问题,打一个页面cpu暴涨,打开一次就涨100%,一会系统就卡的不行了。排查方法,因为是线上的linux,没有用jvm监控工具rim链接上去
- 1. Java对象结构Java对象结构包括三部分:对象头、对象体和填充字节,如图所示:对象头又包括三个字段:第一个字段叫作Mark Word
- AbstractQueuedSynchronizerAbstractQueuedSynchronizer 简称 AQS ,抽象队列同步器,用
- 原因:给定的流不支持mark和reset就会报这个错误。获取到一个网络流,这个网络流不允许读写头来回移动,也就不允许mark/reset机制
- 本文实例讲述了C#模式画刷HatchBrush用法。分享给大家供大家参考。具体如下:using System;using System.Co
- Spring发布了一个新工具Spring Native Beta,用于将现有的Spring Boot应用程序(用Java或Kotlin编写)
- 以下我们系统通过原理,过程等方便给大家深入的简介了Java NIO的函数机制以及用法等,学习下吧。前言本篇主要讲解Java中的IO机制分为两
- 将BeanFactory和ApplicationContext作为容器使用在Spring中,BeanFactory和ApplicationC
- 本文实例讲述了Java实现批量向mysql写入数据的方法。分享给大家供大家参考,具体如下:private static String use
- 一、概述IDEA自带的注释模板一般都很简单,然而我们在写代码的时候喜欢把类注释和文档注释写在代码里,既方便自己看所有的参数,也便于以后维护代
- java使用HttpClient调用接口HttpClient 提供的主要的功能(1)实现了所有 HTTP 的方法(GET,POST,PUT,
- C# Linq获取两个List或数组的差集交集List<int> list1 = newList<int>();li
- Gradle修改默认的Build配置文件名Gradle默认使用build.gradle作为默认的配置文件文件名。如果我们在build.gra
- 提到输入参数的基本验证(非空、长度、大小、格式…),在以前我们还是通过手写代码,各种if、else、StringUtils.isEmpty、
- 什么是Stream流?Stream流是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。Stream的优点:声明性,可复合,可并行。