4

我有一个适配器,它可以扩展ArrayAdapter<T>并想要注入它们LayoutInflater。代码如下,但充气机总是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
    }
}
4

2 回答 2

5

可能您已经创建了MyAdapter实例new而不是注入它。

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

在构造函数中获取实例:

inflater = LayoutInflater.from(context);

会更有效率。我看不到注入的任何好处LayoutInflater
依赖注入是可以的,但不要在没有必要且速度慢的时候使用它。

于 2012-09-19T12:00:19.593 回答
5

在任何类中注入依赖项

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

在构造函数中使用,只需要上下文,对我来说很棒

于 2013-08-30T23:30:11.833 回答