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、以下是图片讲解。
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>
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!"); } }
参考:http://jakewharton.github.io/butterknife/ 这里有各种使用注解的示例,就不具体演示,因为看一遍便可上手,新手们也可以尝试哦。
对了混淆中别忘了添加如下代码:
-dontwarn butterknife.internal.** -keep class **$$ViewInjector { *; } -keepnames class * { @butterknife.InjectView *;}
【Butter Knife】依赖注入方式简化代码提高开发效率
原文地址:http://blog.csdn.net/jabony/article/details/41944941