ButterKnife
一宠漩、概述
ButterKnife相信熟悉Android開發(fā)的同學(xué)應(yīng)該有聽過或使用過芽死,是應(yīng)用于Android系統(tǒng)的View注入框架拗秘,主要作用就是方便我們開發(fā)贷帮,減少對于大量的組件的findViewById
重復(fù)寫(能偷懶的做好事情秕脓,絕不放過,這是每個程序猿的心聲儒搭,嘻嘻)吠架,自從Google推出Android Studio之后就逐步放棄Eclipse了,這讓電腦配置低或者代碼環(huán)境限制的同學(xué)就很鬧心了搂鲫,所以本文章主要記錄ButterKnife在Eclipse中的使用傍药,ButterKnife的具體使用會在后面文章再詳細介紹!
二魂仍、Eclipse的配置
1.先下載好jar包放入對應(yīng)項目的libs文件夾下拐辽。
2.項目右鍵-Properties-Java Complier-Annotation Processing,具體設(shè)置如下所示:
3.接著展開Annotation Processing選擇Factory Path,選中Enable project specific settings。然后點擊 Add JARs…,選中l(wèi)ibs中的ButterKnife的jar包
然后點擊ok保存設(shè)置擦酌,Eclipse將問你是否重新構(gòu)建新項目俱诸,點擊Yes。此時可看到你項目的根目錄里有一個.apt_generated的文件夾仑氛,文件夾中包含YOURACTIVITY$$ViewInjector.java這樣的文件乙埃,如果未發(fā)現(xiàn)可嘗試Project → Clean清除下項目。
備注:
1.此處的ButterKnife的Jar包可在這里選擇下載锯岖。
2.此處編譯使用的jak 要再1.6以上版本介袜。
3.在一些新版本中Eclipse將Annotation Processing 移除,導(dǎo)致有些同學(xué)在使用過程中發(fā)現(xiàn)無法選擇
Compiler/Annotation Processing
出吹,此時可通過以下配置安裝插件即可遇伞。
①.先打開Help菜單,點擊Install New Software.
②.選擇安裝Juno
③.在下面的列表中找到Programming Languages節(jié)點并展開捶牢,找到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(); //初始化數(shù)據(jù)
initEvent(); //初始化事件
}
/**
* 初始化視圖
*/
private void initView() {
tvDiy.setText("測試Butterknife");
}
/**
* 初始化數(shù)據(jù)
*/
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,"點擊調(diào)整按鈕",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);
}
}