在android中使用dagger注入适配器



我只是在尝试dagger而不是roboguice,到目前为止butterknife非常棒且简单,为它点一下:)

但是另一方面,我发现dagger比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());
} ....

但是在创建这个实例的活动上,我必须得到一个允许注入的应用程序,我还必须在每次使用该依赖的类中添加模块,roboguice为我做了所有这些,只有一个入口点可以修改这些东西。

我做错了什么吗?有更好的注射方法吗?避免在模块上声明每个类?

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

我将感谢任何关于这方面的评论或最佳实践或经验。

谢谢!

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

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

最新更新