[英]Injecting on adapters with dagger in android
我只是想用匕首而不是roboguice,到目前为止,黄油刀很棒而且很简单,这很重要:)
但是另一方面,匕首我发现它的配置比roboguice少,我必须基准测试它是否值得更改,但是在这种情况下,我正在研究如何在适配器中注入一些东西,这就是我所做的,并且可以正常工作:
public class PeopleAdapter extends BaseAdapter {
private static final String TAG = PeopleAdapter.class.getName();
@Inject
TempoSharedPreferences prefs;
private LinkedList<People> elements;
public PeopleAdapter (LinkedList<People> elements, TempoApplication app) {
this.elements = elements;
app.inject(this);
Log.d(TAG, "registered: " + prefs.isRegistered());
} ....
但是在创建该实例的Activity上,我必须获得一个允许注入的Application,而且每次使用该依赖项的类每次都必须添加到模块时,roboguice会为我做所有这些事情,并且只有一个入口点可以修改内容。
我做错什么了吗? 有没有更好的方法进行注射? 避免在模块上声明每个类?
@Module(injects = {
MainActivity.class,
PeopleAdapter.class
},
library = true)
public class AndroidModule { ....
我将不胜感激对此发表任何评论或最佳实践或经验。
谢谢!
您做对了所有事情。 Dagger比Roboguice需要更多的配置,但功能也更强大(可配置)。 您是否尝试过作用域图或惰性注入?
每个使用注入的类都必须在模块的injects
参数中列出。 无法避免声明每个类。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.