在Json请求中,我收到了特定文章的图片网址,但NetWorkImageView
没有获得该图片网址。
这是我的要求:
JsonObjectRequest objectRequest = new JsonObjectRequest(url,null,new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
hidePDialog();
JSONObject rss = response.getJSONObject("rss");
JSONObject channel = rss.getJSONObject("channel");
JSONArray item = channel.getJSONArray("item");
Log.d(TAG, item.toString());
for (int i = 0; i < item.length(); i++) {
JSONObject obj = item.getJSONObject(i);
Movie movie = new Movie();
movie.setTitle(obj.getString("title"));
//Image Url
String imageLink = obj.getString("description");
Document doc = Jsoup.parse(imageLink);
Element link = doc.select("img").first();
//System.out.println(link.absUrl("src"));
//ERROR comes with line below.
movie.setThumbnailUrl(link.absUrl("src"));
movieList.add(movie);
}
} catch (JSONException e) {
e.printStackTrace();
}
adapter.notifyDataSetChanged();
}
},new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
VolleyLog.d(TAG, "Error: " + volleyError.getMessage());
hidePDialog();
}
});
AppController.getInstance().addToRequestQueue(objectRequest);
return rootView;
}
它看起来很完整,但我仍然在这里犯了愚蠢的错误。变得愚蠢NullPointerException
。我现在尝试了一段时间,但现在却坚持到这里。错误很小,但无法找到它。
如果您需要更多代码段,请告诉我们。 非常感谢您的帮助。抱歉愚蠢的问题。
编辑1 logcat的
答案 0 :(得分:0)
如果您将第76行标记为右 - 您的问题的答案是该链接为空,因为它在您的json字符串中不存在。
答案 1 :(得分:0)
而不是
Element link = doc.select("img").first();
movie.setThumbnailUrl(link.absUrl("src"));
我应该使用:
Elements link = doc.select("img");
if(link.attr("src")!= null)
{
movie.setThumbnailUrl(link.attr("src"));
}
else {
movie.setThumbnailUrl(null);
}
链接不是null。我的做法是错误的。