我不确定这是否是一个好问题,但我真的被这个阻止了。需要一些建议。
我正在开发一个 Android 应用程序,该应用程序的一部分是在 2 个不同的菜单中检索 2 个单独的 RSS 提要。
我对两个提要使用相同的代码,但两个提要都“奇怪”。
我使用的一些 url 很好,标题排列得很好,而我使用的其他 url,比如我需要的那些(一个来自 ReverbNation(显示时间表),一个来自 Facebook(墙提要)),最终得到显示全部“分裂”。
发生的情况是,当我将结果放入 ListView 并看到结果时,一些字符串已被拆分为单独的字符串/列表视图项,有些字符串甚至是空白并显示为空白列表视图项。
有人对我有什么建议吗?我知道这是一个模糊的问题,但我在这里碰壁了。
代码:
private class RSSHandler extends DefaultHandler
{
final int stateUnknown = 0;
final int stateTitle = 1;
final int stateLink = 2;
int state = stateUnknown;
@Override
public void startDocument() throws SAXException {
// TODO Auto-generated method stub
}
@Override
public void endDocument() throws SAXException {
// TODO Auto-generated method stub
}
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
localnames.add(localName);
if (localName.equalsIgnoreCase("title"))
{
state = stateTitle;
} else if (localName.equalsIgnoreCase("link")){
state = stateLink;
} else if (localName.equalsIgnoreCase("item")){
Log.d("Tour", "item");
}
else
{
state = stateUnknown;
}
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
// TODO Auto-generated method stub
state = stateUnknown;
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
// TODO Auto-generated method stub
String strCharacters = new String(ch, start, length);
xmlStrings.add(strCharacters);
if (state == stateTitle)
{
item.add(strCharacters);
} else if (state == stateLink)
{
itemLink.add(strCharacters);
}
}