我正在开发一个音乐应用程序.我想从LastFM加载艺术家的图像所以我这样做1.我创建了一个类ArtistImageLoader extends BaseGlideUrlLoader.2.在getUrl方法中,我使用retrofit2通过getArtistInfo方法从LastFM获取艺术家的图像URL .
我的问题是我不知道如何注入改造服务来提出请求ArtistImageLoader.我这样做但我得到了一个NOP例外.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