今天寫下butterknife的基本使用手冊
butterknife意為「黃油刀」,意思是此開源庫可以讓你的應用開發過程像用刀切黃油一樣乾淨利落。此庫的核心功能是通過註解來實現檢視的注入,從而在**中避免冗餘的方法呼叫和醜陋的內部類***。
簡單的理解「繫結」的概念,就是將view和任意乙個物件相互關聯,從而在該物件中,不用findviewbyid就能使用view上的所有子檢視,不用setonclicklistener就能給控制項設定監聽。
注意需要android studio版本為2.2.0以上
dependencies
butterknife通過@bindview註解和檢視id幫你做兩件事:找到檢視和將檢視轉型為對應的子型別。例如以下的**:
class exampleactivity extends activity
}
butterknife是通過自動生成**來執行view的查詢,上面的例子中,butterknife最終自動生成的**大概是這樣的:
public void bind(exampleactivity activity)
butterknife預定義了註解@bindbool, @bindcolor, @binddimen, @binddrawable, @bindint, @bindstring,用來執行資源的繫結。如下所示:
class exampleactivity extends activity
除了activity,你也可以將任意的物件與view繫結。
例如在fragment中:
public class fancyfragment extends fragment
}
或在介面卡中:
public class myadapter extends baseadapter else
holder.name.settext("john doe");
// etc...
return view;
} static class viewholder
}}
任何原來需要使用findviewbyid的地方都可以用butterknife.bind替代。
可以將多個檢視放在list或陣列中。
@bindviews()
listnameviews;
action和setter介面可以用來指定簡單的操作:
static final butterknife.actiondisable = new butterknife.action()
};static final butterknife.setterenabled = new butterknife.setter() };
***可以自動在方法上配置,如下:
@onclick(r.id.submit)
public void submit(view view)
***方法的引數是可選的:
@onclick(r.id.submit)
public void submit()
***方法的引數可以是具體的型別,它會被自動轉型:
@onclick(r.id.submit)
public void sayhi(button button)
也可以在單個繫結中指定多個id來進行常見的事件處理:
@onclick()
public void pickdoor(doorview door) else
}
自定義檢視自己的***可以省去id:
public class fancybutton extends button
}
fragment生命週期和activity不同,當在oncreateview中繫結檢視後,要在ondestroyview中將這些檢視置為null,butterknife提供了unbinder介面來自動做這件事,如下:
public class fancyfragment extends fragment
@override public void ondestroyview()
}
對於無法直接繫結檢視的時候,butterknife提供了findbyid方法簡化操作,它通過泛型操作將返回值自動轉型。
view view = layoutinflater.from(context).inflate(r.layout.thing, null);
textview firstname = butterknife.findbyid(view, r.id.first_name);
textview lastname = butterknife.findbyid(view, r.id.last_name);
imageview photo = butterknife.findbyid(view, r.id.photo);
ButterKnife使用手冊中文
butterknife意為 黃油刀 意思是此開源庫可以讓你的應用開發過程像用刀切黃油一樣乾淨利落。此庫的核心功能是通過註解來實現檢視的注入,從而在 中避免冗餘的方法呼叫和醜陋的內部類 簡單的理解 繫結 的概念,就是將view和任意乙個物件相互關聯,從而在該物件中,不用findviewbyid就能使用...
ButterKnife的簡單使用
黃油刀的簡單使用,特別簡單。可以省好多findbyid 還有別的使用,但還沒學到 bind r.id.mima edittext mima 在控制項上加乙個如上所示的 在oncreat裡記得寫上butterknife.bind this 不然會報空指標 如果是button按鈕時 直接 onclick...
註解Butterknife的使用
butterknife,新增依賴庫。2.在專案的project 的 build.gredle 檔案中的 dependencies 標籤下新增。classpath com.neenbedankt.gradle.plugins android apt 1.8 3.在module 的build.gredl...