【问题标题】:How to use nextPageToken from youtube data api v3 to load more videos in android recycler view如何使用 youtube data api v3 中的 nextPageToken 在 android recycler 视图中加载更多视频
【发布时间】:2015-10-20 21:01:37
【问题描述】:

我正在构建一个应用程序,其中有一个 Recycler View,其中包含我的 YouTube 频道视频。一切正常。我成功获得了前 10 个结果。但是现在当用户向下滚动并达到第 10 个结果时,我想加载接下来的 10 个结果,

我的 json 响应有 nextPageToken 但我不知道如何使用 nextPageToken 在我的回收站视图中加载下一页视频, 有什么帮助吗?

  https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=10&playlistId=PLWz5rJ2EKKc_XOgcRukSoKKjewFJZrKV0&fields=nextPageToken,items(id,snippet(title,description,position,thumbnails(medium,high),resourceId/videoId))&key=API_KEY;    

json解析代码:

    private ArrayList<VideoData> parseJSONReaponse(JSONObject response) {
    ArrayList<VideoData> listVideos = new ArrayList<>();
    if (response != null || response.length() > 0) {

        String nextPageToken = Constants.NA;
        try {

            if (response.has(KEY_NEXTPAGETOKEN)
                    && !response.isNull(KEY_NEXTPAGETOKEN) ){
                nextPageToken = response.getString(KEY_NEXTPAGETOKEN);
            }

            JSONArray arrayItems = response.getJSONArray(KEY_ITEMS);

            for (int i = 0; i < arrayItems.length(); i++) {
                String title = Constants.NA;
                String urlThumbnail = Constants.NA;
                String resourceID = Constants.NA;

                JSONObject currentItems = arrayItems.getJSONObject(i);

                if (currentItems.has(KEY_SNIPPET)
                        && !currentItems.isNull(KEY_SNIPPET)) {
                    JSONObject objectSnippet = currentItems.getJSONObject(KEY_SNIPPET);

                    if (objectSnippet.has(KEY_TITLE)
                            && !objectSnippet.isNull(KEY_TITLE)) {
                        title = objectSnippet.getString(KEY_TITLE);
                    }

                    if (objectSnippet.has(KEY_THUMBNAIL)
                            && !objectSnippet.isNull(KEY_THUMBNAIL)) {
                        JSONObject objectThumbnail = objectSnippet.getJSONObject(KEY_THUMBNAIL);


                        if (objectThumbnail.has(KEY_THUMBNAIL_MEDIUM)
                                && !objectThumbnail.isNull(KEY_THUMBNAIL_MEDIUM)) {
                            JSONObject objectThumbnailMedium = objectThumbnail.getJSONObject(KEY_THUMBNAIL_MEDIUM);


                            if (objectThumbnailMedium.has(KEY_THUMBNAIL_MEDIUM_URL)
                                    && !objectThumbnailMedium.isNull(KEY_THUMBNAIL_MEDIUM_URL)) {
                                urlThumbnail = objectThumbnailMedium.getString(KEY_THUMBNAIL_MEDIUM_URL);
                            }
                        }
                    }

                    if (objectSnippet.has(KEY_RESOURCEID)
                            && !objectSnippet.isNull(KEY_RESOURCEID)) {
                        JSONObject objectResourceId = objectSnippet.getJSONObject(KEY_RESOURCEID);

                        if (objectResourceId.has(KEY_VIDEOID)
                                && !objectResourceId.isNull(KEY_VIDEOID)) {
                            resourceID = objectResourceId.getString(KEY_VIDEOID);
                        }
                    }
                }

                VideoData videoData = new VideoData();
                videoData.setTitle(title);
                videoData.setUrlThumbnail(urlThumbnail);
                videoData.setVideoId(resourceID);

                if (!title.equals(Constants.NA)){
                    listVideos.add(videoData);
                }

            }

        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
    return listVideos;
}

【问题讨论】:

  • 您找到了任何答案吗?如果你找到了请分享给我?

标签: android json parsing youtube-data-api


【解决方案1】:

您可以尝试发出相同的请求,但需要额外的参数pageToken=&lt;the-nextPageToken-you-received&gt;

【讨论】:

    【解决方案2】:

    在您的网址中只需更改maxResults=your value,它就会加载您的视频

    谢谢

    【讨论】:

    • 不! maxResult 有一个限制(即从 0-50)
    猜你喜欢
    • 1970-01-01
    • 2013-06-30
    • 2022-11-04
    • 2015-08-10
    • 2014-08-09
    • 1970-01-01
    • 2017-09-20
    • 2018-04-06
    • 1970-01-01
    相关资源
    最近更新 更多