首页 > 代码库 > 【Butter Knife】依赖注入方式简化代码提高开发效率

【Butter Knife】依赖注入方式简化代码提高开发效率

Butter Knife是一款非常不错的开源框架,其目的是简化代码,提高项目的开发效率。

以往的开发我们经常需要用findViewById(R.xx.xxx);几乎没个页面都会涉及到,无论Activity还是Fragment甚至listView、GridView中的

Adapter.这些重复性的代码会让人觉得很枯燥,因为闭上眼都不会敲错的代码,每天重复几百遍是有点耗时,尽管有代码提示。而且可能会因为不同field的忘记书写而导致NullPoint空指针。



那么还是直接进入主题:

步骤:

第三方框架和库引入的规律都差不多,1.下载库,2.引入,3.浏览文档,查看API。有的是库项目,有的是jar包,但基本同理,最后注意代码混淆的问题。

1、准备阶段,先到官网( http://jakewharton.github.io/butterknife/  )上jar包,下载下来。

2、把下载下来的jar包,放到项目的libs下,就会自动导入项目了。

3、配置eclips,鼠标对准需要注解的项目,单击右键 poperties –>java Compiler –>

Annotation Procession –> 钩一下 Enable project specific settings 其它的就会自动钩上了

–> Factory Path ( 钩一下Enable project specific settings )–> 最后Add …. JARs 把刚刚下载的jar包来。这样eclips配置就可以了。


4、以下是图片讲解。

android_butterknife_iamge_01

5、是用注解,直接上代码。

XML布局:

<RelativeLayout		xmlns:android="http://schemas.android.com/apk/res/android"
	xmlns:tools="http://schemas.android.com/tools"
	android:layout_width="match_parent"
	android:layout_height="match_parent" >
 
 
   <TextView
	   android:id="@+id/tv_test"
	   android:layout_width="wrap_content"
	   android:layout_height="wrap_content"
	   android:layout_centerHorizontal="true"
	   android:layout_centerVertical="true"
	   android:text="@string/hello_world"
	   tools:context=".MainActivity" />
</RelativeLayout>

code代码部分:

import butterknife.ButterKnife;
import butterknife.InjectView;
import butterknife.OnClick;
import android.os.Bundle;
import android.app.Activity;
import android.widget.TextView;
 
 
public class MainActivity extends Activity {
 
	@InjectView(R.id.tv_test)
	TextView tvTest;
 
	@Override
	public void onCreate(Bundle savedInstanceState) {
		 super.onCreate(savedInstanceState);
		 setContentView(R.layout.activity_main);
		 ButterKnife.inject(this);
		 tvTest.setText("test");
	}
 
	@OnClick(R.id.tv_test)
	public void sayHi() {
		 tvTest.setText("Hello!");
	}
}

现在:RUN IT!  It will be funny!看上去是不是有点意思,别只是看看热闹,动手吧,你也可以像高手一样编写代码,效率一点不必他们差哦。


参考:http://jakewharton.github.io/butterknife/ 这里有各种使用注解的示例,就不具体演示,因为看一遍便可上手,新手们也可以尝试哦。

对了混淆中别忘了添加如下代码:

-dontwarn butterknife.internal.**
-keep class **$$ViewInjector { *; }
-keepnames class * { @butterknife.InjectView *;}




【Butter Knife】依赖注入方式简化代码提高开发效率