Roboguice注入适配器

时间:2012-09-14 09:25:18

标签: android code-injection roboguice

我有一个扩展ArrayAdapter<T>的适配器,想要注入LayoutInflater。代码如下所示,但inflater始终为null

public abstract class MyAdapter<T> extends ArrayAdapter<T> {

    @Inject
    protected LayoutInflater inflater;

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // inflater here is null
    }
}

2 个答案:

答案 0 :(得分:5)

可能您已使用MyAdapter创建了new个实例,而不是注入它。

在这种情况下,我不建议注入LayoutInflater,除非您想使用此类的不同实现,例如模拟LayoutInflater进行测试。

在构造函数中获取实例:

inflater = LayoutInflater.from(context);

效率更高。我注意到注入LayoutInflater没有任何好处 依赖注入是可以的,但是在没有必要和缓慢时不要使用它。

答案 1 :(得分:5)

在任何类中注入依赖项

 RoboGuice.getInjector(context).injectMembers(this);

在构造函数中使用,只需要上下文, 伟大的作品对我来说