(TextView)findViewById(R.id.some_text_view);)。不更多。在幕后,它仍然执行所有那些无聊的代码。因此,它并不真正注入。
还值得一提的是,Jake Wharton是这两个很棒的库的开发人员之一。
以下是一些有用的链接:
GitHub上的Dagger示例项目
Devoxx上的Dagger演示(Jake Wharton)
没有太多有用的ButterKnife链接。它非常简单和直接,希望你不需要任何帮助。
@JakeWharton在评论中部分回答了这个问题:
简而言之:它们互补。使用Butterknife注入视图,Dagger注入其余部分。
如果你试图使用Dagger来注入视图,你会遇到很多麻烦 :) 尝试把Butter Knife看作是绑定视图的一种方式,而不是注入。我只是称它为注入,因为所有的RoboGuice转换者都在抱怨Dagger缺乏“视图注入”。实际上它并不是注入。正如答案所提到的,它只是一种减少样板代码的方法。在底层,它只是像你一样调用findViewById!
Link: http://jakewharton.github.io/butterknife/
我在我的项目中结合使用Butter Knife、parcelable和easyAdapter来处理列表视图。原因是减少样板代码,并且通过使用parcelable可以更快速、更清晰地实现打包。因此,如果您有很多ListViews,我建议使用这种方法。
链接:
ButterKnife旨在简化注册点击监听器并减少findViewById()调用提供的样板代码。
Dagger和Dagger2是通用依赖注入系统。
忽略Guice和MVVM上的文本,阅读Dependency Injection和The Android Way。这基本上回答了Dagger的目的和简化。
https://spring.io/blog/2011/08/26/clean-code-in-android-applications
findViewById一样! - Jake Wharton