如何使用 youtube data api v3 中的 nextPageToken 在 android recycler 视图中加载更多视频
Posted
技术标签:
【中文标题】如何使用 youtube data api v3 中的 nextPageToken 在 android recycler 视图中加载更多视频【英文标题】:How to use nextPageToken from youtube data api v3 to load more videos in android recycler view 【发布时间】: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;
【问题讨论】:
您找到了任何答案吗?如果你找到了请分享给我? 【参考方案1】:您可以尝试发出相同的请求,但需要额外的参数pageToken=<the-nextPageToken-you-received>
【讨论】:
【参考方案2】:在您的网址中只需更改maxResults=your value
,它就会加载您的视频
谢谢
【讨论】:
不! maxResult 有一个限制(即从 0-50)以上是关于如何使用 youtube data api v3 中的 nextPageToken 在 android recycler 视图中加载更多视频的主要内容,如果未能解决你的问题,请参考以下文章