gpt4 book ai didi

java - 在android中用 Dagger 注入(inject)适配器

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:16:11 27 4
gpt4 key购买 nike

我只是在尝试用 Dagger 代替 roboguice,到目前为止,butterknife 非常棒而且简单,值得一提 :)

但另一方面,我发现 dagger 不如 roboguice 可配置,我必须对其进行基准测试是否值得更改,但在这种情况下,我正在研究如何在适配器中注入(inject)东西,这就是我所做的,并且它有效:

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 上,我必须得到一个允许注入(inject)的应用程序,而且我必须在每次使用该依赖项的类时添加到模块中,roboguice 为我做了所有这些并且只有一个条目指出修改内容的位置。

我是不是做错了什么?有没有更好的方法来执行此注入(inject)?避免在模块上声明每个类?

@Module(injects = {
MainActivity.class,
PeopleAdapter.class
},
library = true)
public class AndroidModule { ....

我将不胜感激任何关于此的评论或最佳实践或经验。

谢谢!

最佳答案

你做的一切都是对的。 Dagger 比 Roboguice 需要更多配置,但也更强大(可配置)。您是否已经尝试过范围图或惰性注入(inject)?

每个使用注入(inject)的类都必须列在模块的 injects 参数中。没有办法避免声明每个类。

关于java - 在android中用 Dagger 注入(inject)适配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25107009/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com