【发布时间】:2017-11-29 11:15:52
【问题描述】:
我正在尝试在 RecyclerView 中加载 Youtube 视频缩略图。调用 initialize() 方法时出现此错误。
java.lang.IllegalArgumentException: Service Intent must be explicit: Intent { act=com.google.android.youtube.api.service.START }
这是我的 recyclerView 适配器:
public class DataAdapter extends RecyclerView.Adapter<DataAdapter.ViewHolder> {
private Context mContext;
private List<Song> songsList;
public DataAdapter(Context mContext, List<Song> songsList) {
this.mContext = mContext;
this.songsList = songsList;
}
@Override
public int getItemCount() {
return songsList.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
public TextView song_title, song_author;
YouTubeThumbnailView youTubeThumbnailView;
public ViewHolder(View view) {
super(view);
song_title = (TextView) view.findViewById(R.id.song_title);
song_author = (TextView) view.findViewById(R.id.song_author);
youTubeThumbnailView = (YouTubeThumbnailView) view.findViewById(R.id.youtube_thumbnail);
}
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.card_row, parent, false);
return new ViewHolder(itemView);
}
@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
final Song song = songsList.get(position);
holder.song_title.setText(song.getTitle());
holder.song_author.setText(song.getAuthor());
holder.youTubeThumbnailView.initialize(YOUTUBE_API_KEY, new YouTubeThumbnailView.OnInitializedListener() {
@Override
public void onInitializationSuccess(YouTubeThumbnailView youTubeThumbnailView, final YouTubeThumbnailLoader youTubeThumbnailLoader) {
youTubeThumbnailLoader.setVideo(videoID);
youTubeThumbnailLoader.setOnThumbnailLoadedListener(new YouTubeThumbnailLoader.OnThumbnailLoadedListener() {
@Override
public void onThumbnailLoaded(YouTubeThumbnailView youTubeThumbnailView, String s) {
}
@Override
public void onThumbnailError(YouTubeThumbnailView youTubeThumbnailView, YouTubeThumbnailLoader.ErrorReason errorReason) {
}
});
}
@Override
public void onInitializationFailure(YouTubeThumbnailView youTubeThumbnailView, YouTubeInitializationResult youTubeInitializationResult) {
}
});
}
在 MainActivity 中,我这样调用 DataAdapter:
mAdapter = new DataAdapter(MainActivity.this, songs);
mRecyclerView.setAdapter(mAdapter);
【问题讨论】:
标签: java android thumbnails android-youtube-api