ButterKnife注解是編譯時注解,Xutils是運行時注解。很明顯編譯時注解性能更高
一、先配置好環境
1.在工程上右鍵,選Properties,然后選Java Compiler,選Annotation Processing,把那三個Enable復選框都勾選上
2.然后選擇Factory Path,勾選Enable project specific settings,然后添加ButterKnife的jar包。
二、使用
1.在Activity的onCreate方法中注冊ButterKnife,這樣Activity里的所有子view都可以進行注冊。
1 @Override 2 protected void onCreate(Bundle savedInstanceState) { 3 super.onCreate(savedInstanceState); 4 setContentView(R.layout.activity_main); 5 ButterKnife.inject(this); 6 }
不僅僅是Activity中可以注冊,其他的例如Fragment,ViewHolder等都可以注冊,這里不做演示。
還有種用法,
1 public class BaseFragment extends Fragment { 2 @Override 3 public View onCreateView(LayoutInflater inflater, ViewGroup container, 4 Bundle savedInstanceState) { 5 View view = inflater.inflate(R.layout.fragment_default, null); 6 ButterKnife.inject(this,view); 7 8 return super.onCreateView(inflater, container, savedInstanceState); 9 } 10 11 }
target就是賦值給this,也就是Fragment,source就是從哪里findviewbyid
2.在類中直接注冊控件
1 @InjectView(R.id.button1) 2 Button button1;
這樣button1就是控件R.id.button1的引用了,后面可以對這個引用進行操作了,比如setText("")等等。
3.也可以注冊點擊事件
1 @OnClick(R.id.button1) 2 public void onClick(View view){ 3 System.out.println("test"); 4 }
PS:現在已經出了高版本的ButterKnife,注冊的方法有所不同