私はをロードして、youtube
の動画をリストのように下に表示する必要があります。コードは以下のとおりです。私はこれにyoutube api
を使用しました。Youtubeview with RecyclerView読み込み
次のコードの問題は、最後のビデオだけが読み込まれ、渡された値が正しいこと、および動作していることです。リストの他の動画は読み込まれず、黒い画面が表示されます。
public class YoutubeAdapter extends RecyclerView.Adapter<YoutubeAdapter.MyViewHolder> {
private String developer_key = "My Developer Key";
private Context context;
private ArrayList<String> video_id;
private LayoutInflater inflater;
public YoutubeAdapter(Context context, ArrayList<String> video_id) {
inflater = LayoutInflater.from(context);
this.context = context;
this.video_id = video_id;
}
public class MyViewHolder extends RecyclerView.ViewHolder {
YouTubePlayerView youtubeView;
public MyViewHolder(View view) {
super(view);
youtubeView = (YouTubePlayerView) view.findViewById(R.id.youtubeView);
}
}
@Override
public YoutubeAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = inflater.inflate(R.layout.video_content,parent,false);
return new MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
final String video_string = video_id.get(position);
holder.youtubeView.initialize(developer_key, new YouTubePlayer.OnInitializedListener() {
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) {
if (!b) {
youTubePlayer.cueVideo(video_string);
}
}
@Override
public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {
Toast.makeText(context, "Failed to load video", Toast.LENGTH_SHORT).show();
}
});
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public int getItemCount() {
return video_id.size();
}
}
「youtube videos」のサムネイルがロードされていないことを意味しますか? –
サムネイルビューではなくiのyoutubeビューのみを使用しました。何が起きるのは、ボタン付きの最後のビデオが表示され、再生できることです。 –
はあなたの 'Array List 'サイズ? –