繁体   English   中英

在Android中使用匕首注入适配器

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM