我正在努力解决一个我无法解决的愚蠢问题。 基本上我在我的应用程序中执行的操作如下:
我将所有RSS内容下载到本地数据库,包括每个Feed(图像)的附件,但不是每个Feed都包含图像。
100个Feed中约有10个不包含图像 不包含图像的Feed会发生什么情况,如下图所示:
http://i.stack.imgur.com/FTUBl.png
由于某种原因,没有图像的Feed会获得前一个Feed的图像...
我会将我的所有代码放在下面,希望有人可以告诉我世界上我做错了什么......
这部分是我将图像下载到本地存储的地方,这个功能正常工作但是由于某种原因,没有外壳的馈送得到了previouse feed的封装发回给它...
for (Message msg : wildLife){
String imageURL = msg.getEnclosure();
String imageName = imageURL.substring(imageURL.lastIndexOf("/"));
String imagePath = ImageDir + imageName;
//-- Call upon the function that will download the image.
if (imageURL !=null){
DownloadFromUrl(imageURL, imagePath);
}
//-- We add all rows we find in the rrs feed to our local stored database.
db.addWildlifeRow(
msg.getTitle(),
msg.getDescription(),
"Empty slot",
imagePath,
msg.getLink());
}
我检查了RSS解析器,但它没有存储两次相同的URL。那没问题。当从消息项中请求URL机箱时,它出错了(据我所知)。
是否有人可能遇到过同样的问题?
欢迎所有的建议我已经被困在这个问题好几天了,我似乎无法弄明白......
如果您需要更多代码来查找可能的解决方案,请询问并提供。
P.S。在将数据放入我的数据库之前出错了,所以当从消息中读取信息并将其放入数据库时,它已经出错了。机箱是从reviouse复制的(如果没有)
问候,快活
答案 0 :(得分:0)
您是否尝试在调试中浏览它?
我同意似乎
String imageURL = msg.getEnclosure();
必须总是返回一些东西 - 好像msg.getEnclosure()对于没有图像的项目返回null,那么你将在下一行获得NullPointerException
String imageName = imageURL.substring(imageURL.lastIndexOf("/"));
如果您可以提供可能有用的RSS解析代码 - 我假设除了Wildlife消息集之外没有其他预处理?
答案 1 :(得分:0)
//-- Call upon the function that will download the image.
if (imageURL !=null){
DownloadFromUrl(imageURL, imagePath);
}
else
imageview.setImageDrawable(null);
尝试在此处添加其他部分并清除ur imageview中的任何旧图像