在上一篇博客:Android商城开发系列(三)——使用Fragment+RadioButton实现商城底部导航栏实现商城的底部导航栏时,里面用到了butterknife,今天来讲解一下的butterknife使用
一、butterknife基本概念
butterknife是一个依赖注入框架,可以省去我们findviewbyid()操作,哈哈~俗话说:“不会偷懒的程序员不是好的程序员!”。作为一名Android开发,是不是经常厌烦了大量的findViewById以及setOnClickListener代码,而ButterKnife是一个专注于Android系统的View注入框架,让你从此从这些烦人臃肿的代码中解脱出来。
二、示例代码
先来看一段代码示例说明下ButterKnife是如何简化代码的:
采用findViewById( )方法产生的代码:
package com.nyl.shoppingmalltest; import android.app.Activity; import android.os.Bundle; import android.widget.RadioButton; import android.widget.RadioGroup; public class MainActivity extends Activity { private RadioGroup rg_main; private RadioButton rb_home; private RadioButton rb_type; private RadioButton rb_community; private RadioButton rb_user; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化布局 rg_main = (RadioGroup) findViewById(R.id.rg_main); rb_home = (RadioButton) findViewById(R.id.rb_home); rb_type = (RadioButton) findViewById(R.id.rb_type); rb_community = (RadioButton) findViewById(R.id.rb_community); rb_user = (RadioButton) findViewById(R.id.rb_user); } }
而用ButterKnife之后的代码是这样的:
package com.nyl.shoppingmall.activity; import android.app.Activity; import android.os.Bundle; import android.widget.FrameLayout; import android.widget.RadioButton; import android.widget.RadioGroup; import com.nyl.shoppingmall.R; import butterknife.Bind; import butterknife.ButterKnife; public class MainActivity extends Activity { @Bind(R.id.frameLayout) FrameLayout frameLayout; @Bind(R.id.rb_home) RadioButton rbHome; @Bind(R.id.rb_type) RadioButton rbType; @Bind(R.id.rb_community) RadioButton rbCommunity; @Bind(R.id.rb_user) RadioButton rbUser; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //ButterKnife和当前Activity绑定 ButterKnife.bind(this); } }
三、用法
在Android编程过程中,我们会写大量的布局和点击事件,像初始view、设置view监听这样简单而重复的操作让人觉得麻烦类,所以可以采用注解的方式去实现,而ButterKnife则是注解中相对简单易懂的很不错的开源框架,接下来就介绍一下如何使用。
3.1 Module 里的 build.gradle 里面引入butterknife
compile 'com.jakewharton:butterknife:7.0.1'
3.2 安装 butterknife插件
在 Setting->Plugins 中输入 butterknife 添加插件,如下图:
接着就是下载,如下图:
完成后,如下图所示:
安装完成之后重启AndroidStudio
见证奇迹的时刻来了,把光标定在setContentView(R.layout.activity_main);然后点击Code→Generate,如下图:
勾选需要生成的元素,如下图所示:
点击Confim就会生成如下图所示代码:
这就是 Butterknife以及关于Butterknife插件的用法,很简单也很方便,推荐大家在开发中使用Butterknife框架去提高开发效率