我正在使用GMF示例在我的应用中播放视频,我从实时JSON中获取视频标题和网址,以下是我的JSON示例:
<?php
if ( isset($_POST['name']) ) { // was the form submitted?
$data['name']= 'welcome '.$name;
$data ['age']= 'you are '.$age;
print_r(json_encode($data));exit;
}
?>
这就是我的代码:
MainActivity.java:
var message = data.name + ' ' + data.age;
$('#result').html(message );
每当我点击任何列表项以播放视频时,获取{
"videos": [
{
"title":"Video 1",
"url":"88.mp4"
},
{
"title":"Video 2",
"url":"l5.mp4"
}
]}
,请参阅完整日志:
JSONObject jsono = new JSONObject(data);
JSONArray jarray = jsono.getJSONArray("videos");
for (int i = 0; i < jarray.length(); i++) {
JSONObject object = jarray.getJSONObject(i);
Videos video = new Videos();
video.setTitle(object.getString("title"));
video.setUrl(object.getString("url"));
videosArrayList.add(video);
}
我认为应该编写代码,所以我可能知道我在哪里丢失了吗?我错过了什么?我该如何解决呢?
答案 0 :(得分:2)
当您在doInBackgroud
方法中获取响应时,您会创建Videos
个对象并将标题和网址放入其中,但是当您创建播放器时,请在调用时尝试获取Video
对象{ {1}},但从未设置过。在那一点上是你的NullPointerException。
答案 1 :(得分:1)
在代码的这一部分
Videos video = new Videos();
video.setTitle(object.getString("title"));
video.setUrl(object.getString("url"));
videosArrayList.add(video);
您从未在video
对象Videos
中分配video
字段(从不致电
public void setVideo(Video video) { this.video = video; }
)。您使用默认构造函数p ublic Videos() { }
将字段video
初始化为null
要解决此问题,请添加此行
video.setVideo(new Video(object.getString("url"),VideoType.MP4)))