一、概述
ButterKnife相信熟悉Android开发的同学应该有听过或使用过,是应用于Android系统的View注入框架,主要作用就是方便我们开发,减少对于大量的组件的findViewById
重复写(能偷懒的做好事情,绝不放过,这是每个程序猿的心声,嘻嘻),自从Google推出Android Studio之后就逐步放弃Eclipse了,这让电脑配置低或者代码环境限制的同学就很闹心了,所以本文章主要记录ButterKnife在Eclipse中的使用,ButterKnife的具体使用会在后面文章再详细介绍!
二、Eclipse的配置
1.先下载好jar包放入对应项目的libs文件夹下。
2.项目右键-Properties-Java Complier-Annotation Processing,具体设置如下所示:
3.接着展开Annotation Processing选择Factory Path,选中Enable project specific settings。然后点击 Add JARs…,选中libs中的ButterKnife的jar包
然后点击ok保存设置,Eclipse将问你是否重新构建新项目,点击Yes。此时可看到你项目的根目录里有一个.apt_generated的文件夹,文件夹中包含YOURACTIVITY$$ViewInjector.java这样的文件,如果未发现可尝试Project → Clean清除下项目。
备注:
1.此处的ButterKnife的Jar包可在这里选择下载。
2.此处编译使用的jak 要再1.6以上版本。
3.在一些新版本中Eclipse将Annotation Processing 移除,导致有些同学在使用过程中发现无法选择
Compiler/Annotation Processing
,此时可通过以下配置安装插件即可。
①.先打开Help菜单,点击Install New Software.
②.选择安装Juno
③.在下面的列表中找到Programming Languages节点并展开,找到Eclipse java Development Tools,勾选上,并安装,安装完毕后自动重启Eclipse即可。
至此在Eclipse的配置基本完毕,可以愉快的偷懒代码了,嘻嘻!
三、ButterKnife的简单使用
写到这里,我也有点想偷懒,直接上代码。
/**
* ButterKnife的简单使用
* @ClassName: MainActivity
* @Description: TODO(ButterKnife的简单使用)
* @author Anand
* @date 2017年6月28日 下午2:10:46
*/
public class MainActivity extends ActionBarActivity {
/** ButterKnife注入 **/
@Bind(R.id.et_content)
EditText etContent;
@Bind(R.id.btn_default)
Button btnDefualt;
@Bind(R.id.btn_diy)
Button btnDiy;
@Bind(R.id.tv_default)
TextView tvDefault;
@Bind(R.id.tv_diy)
TextView tvDiy;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//ButterKnife绑定Activity
ButterKnife.bind(this);
initView(); //初始化视图
initData(); //初始化数据
initEvent(); //初始化事件
}
/**
* 初始化视图
*/
private void initView() {
tvDiy.setText("测试Butterknife");
}
/**
* 初始化数据
*/
private void initData() {
}
/**
* 初始化事件
*/
private void initEvent() {
}
/**
* ButterKnife的OnClick注解
* 多个控件具有相同的事件
* @param btn
*/
@OnClick({R.id.btn_default,R.id.btn_diy})
public void btnOnclick(Button btn){
switch (btn.getId()) {
case R.id.btn_default:
Toast.makeText(this,"点击默认按钮",Toast.LENGTH_SHORT).show();
break;
default:
Toast.makeText(this,"点击调整按钮",Toast.LENGTH_SHORT).show();
break;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
protected void onDestroy() {
super.onDestroy();
//ButterKnife解绑
ButterKnife.unbind(this);
}
}