烦人的Android - RSS问题

时间:2011-06-02 07:52:42

标签: android database image-processing rss

我正在努力解决一个我无法解决的愚蠢问题。 基本上我在我的应用程序中执行的操作如下:

我将所有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复制的(如果没有)

问候,快活

2 个答案:

答案 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中的任何旧图像