我正在考虑如何做到这一点背后的逻辑。我现在这样做的方式有点像黑客,但它确实有效。这是太多的API请求而且没有必要,所以希望有人可以帮我设想我应该如何做到这一点。
我正在使用parse.com SDK for android来检索数据以显示视频。
以下是我的视频功能代码
int count = 9;
private void getVideos()
{
ParseQuery<ParseObject> query = ParseQuery.getQuery("Videos");
query.whereEqualTo("videoid", count);
query.findInBackground(new FindCallback<ParseObject>() {
public void done(List<ParseObject> videoData, ParseException e) {
if (e == null) {
/** check to see if there are any more videos **/
if(videoData.size() == 0){
Toast.makeText(getApplicationContext(), "No more videos found.", Toast.LENGTH_LONG).show();
}else{
for(int i=0; i<videoData.size(); i++){
String videoUrl = videoData.get(i).getString("url");
String videoTitle = videoData.get(i).getString("title");
String videoUser = videoData.get(i).getString("user");
TextView title = (TextView)findViewById(R.id.videoTitle);
title.setTextColor(Color.parseColor("#FFFFFF"));
title.setText(videoTitle);
TextView user = (TextView)findViewById(R.id.videoUser);
user.setTextColor(Color.parseColor("#FFFFFF"));
user.setText("By: " + videoUser);
myVideoView = (VideoView) findViewById(R.id.myvideoview);
myVideoView.setVideoPath(vineVideoUrl);
myVideoView.setMediaController(null);
myVideoView.start();
/** loop video **/
myVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
myVideoView.start();
}
});
/** next video **/
Button button= (Button) findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
count++;
Toast.makeText(getApplicationContext(), "Loading...", Toast.LENGTH_LONG).show();
getVideos();
}
});
}
}
} else {
Toast.makeText(getApplicationContext(), "Unable to retrieve videos, please check back later.", Toast.LENGTH_LONG).show();
}
}
});
}
每次按下该按钮,它都会递增计数,并从API获取该ID的视频。我想弄清楚的是如何以正确的方式检索来自API的最新20个视频?
我认为正确的方法是这样的:
从API获取最新的20个视频,存储在数组中,然后按下按钮循环到每个视频。我如何将它们分别传递给textview?我应该怎么知道它是最后一个视频(20)并再次调用API并传回新的结果?
答案 0 :(得分:0)
您可以创建一个List<String> oldMovies
来保存您已收到的电影的ID,现在每次您想要在查询中添加更多电影时添加此约束movieQuery.notConteindIn("onjectId", oldMovies)
。这将返回没有objectsId
中包含oldMovies
之一的电影列表。每次您需要更新oldMovie
ID列表。