在Android工作室中使用RecyclerView和带有Firebase的cardView获取Youtube视频

时间:2017-09-30 07:22:09

标签: android firebase youtube android-recyclerview youtube-api

我一直在开发一个Android项目,其中我使用 YouTube API和 Firebase 作为数据库,我还使用了 recyclerView 但是我的Firebase数据库中的视频没有显示在应用程序中,我已经正确实现了,但是它有问题,请帮忙。

  

我正在使用Android Studio

YouTube Firebase适配器java类:

@Override
    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        setContentView(R.layout.youtube_videos);
        YDatabaseReference = FirebaseDatabase.getInstance().getReference().child("youT");
        YouRecycler = (RecyclerView)findViewById(R.id.Youtube_recycler);
    }

    @Override
    public void onStart() {
        super.onStart();

    FirebaseRecyclerAdapter<post2youtube, YoutubeViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<post2youtube, YoutubeViewHolder>(

            post2youtube.class,
            R.layout.youtube_videos_card,
            YoutubeViewHolder.class,
            YDatabaseReference
    ) {
        @Override
        protected void populateViewHolder(YoutubeViewHolder viewHolder, post2youtube model, int position) {
            viewHolder.setYoutube(model.getYoutubing());
        }

    };

            YouRecycler.setAdapter(firebaseRecyclerAdapter);
    }

    public static class YoutubeViewHolder extends RecyclerViewPager.ViewHolder {
        View yView;

        public YoutubeViewHolder(View itemView) {
            super(itemView);
            yView = itemView;
        }
        public void setYoutube(final String youtubing){
            final YouTubePlayerView youPlay = (YouTubePlayerView) yView.findViewById(R.id.youtuber);
            youPlay.initialize("SOME KEY",
                    new YouTubePlayer.OnInitializedListener() {
                        @Override
                        public void onInitializationSuccess(YouTubePlayer.Provider provider,
                                                            YouTubePlayer youTubePlayer, boolean b) {

                            youTubePlayer.cueVideo(youtubing);
                        }
                        @Override
                        public void onInitializationFailure(YouTubePlayer.Provider provider,
                                                            YouTubeInitializationResult youTubeInitializationResult) {

                        }
                    });
        }

Getter和setters类:

public class post2youtube {
    private String youtubing;

    public post2youtube(){

    }

    public post2youtube(String youtubing) {
        this.youtubing = youtubing;
    }

    public String getYoutubing() {
        return youtubing;
    }

    public void setYoutubing(String youtubing) {
        this.youtubing = youtubing;
    }

}

RecyclerView xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/Youtube_recycler"/>

</LinearLayout>

CardView xml:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    <com.google.android.youtube.player.YouTubePlayerView
        android:id="@+id/youtuber"
        android:layout_width="match_parent"
        android:layout_height="200dp" />

    </LinearLayout>

</android.support.v7.widget.CardView>

0 个答案:

没有答案