小编Kie*_*anh的帖子

如何在dagger2中使用Glide

我正在开发一个音乐应用程序.我想从LastFM加载艺术家的图像所以我这样做1.我创建了一个类ArtistImageLoader extends BaseGlideUrlLoader.2.在getUrl方法中,我使用retrofit2通过getArtistInfo方法从LastFM获取艺术家的图像URL .

我的问题是我不知道如何注入改造服务来提出请求ArtistImageLoader.我这样做但我得到了一个N​​OP例外.lastFmService不是没有注射.

// GlideModule
glide.register(MLocalArtist.class, InputStream.class, new    ArtistImageLoader.Factory());

// Use it in onCreate method of ArtistsFragment
DaggerLastFmComponent.builder().activityModule(new ActivityModule(getActivity()))
                .netComponent(getNetComponent())
                .build().inject(this);

// use this code in onBindViewHolder method of artists recycler adapter
Glide.with(getContext())
                .from(MLocalArtist.class)
                .load(localArtist)
                .into(localArtistViewHolder.ivArtwork);
Run Code Online (Sandbox Code Playgroud)

ArtistImageLoader

public class ArtistImageLoader extends BaseGlideUrlLoader<MLocalArtist> {

    @Inject
    LastfmService lastfmService;

    public ArtistImageLoader(Context context) {
        super(context);
    }

    @Override
    protected String getUrl(MLocalArtist model, int width, int height) {
        Call<List<MArtist>> call = lastfmService.getArtistInfo(model.artistName); …
Run Code Online (Sandbox Code Playgroud)

dependency-injection dagger-2 android-glide retrofit2 okhttp3

5
推荐指数
1
解决办法
2288
查看次数