如何解决在 Android 中将不同的字符串添加到不同的数组列表的更好方法是什么?
我正在尝试解析 RSS 提要。为此,我有一个 RSSHandler。
public class RSSHandler extends DefaultHandler {
boolean item = false;
int DATA_VALUE = 0;
private static ArrayList<String> photoUrl = new ArrayList<>();
private static ArrayList<String> title = new ArrayList<>();
private static ArrayList<String> hits = new ArrayList<>();
private static StringBuffer RSSResult = new StringBuffer();
public static StringBuffer getRSSResult() {
return RSSResult;
}
public void setRSSResult(StringBuffer RSSResult) {
this.RSSResult = RSSResult;
}
@Override
public void startElement (String uri,String localName,String qName,Attributes attrs) throws SAXException {
DATA_VALUE = 0;
if (localName.equals("item")) {
item = true;
if (RSSResult != null && RSSResult.length() > 0) {
Feed.add(getRSSResult());
setRSSResult(new StringBuffer("\n"));
}
}
if (item) {
if (localName.equals(Constants.RSS_TITLE)) {
DATA_VALUE = 1;
} else if (localName.equals(Constants.RSS_LINK)) {
} else if (localName.equals(Constants.RSS_DESCRIPTION)) {
} else if (localName.equals(Constants.RSS_PUB_DATE)) {
} else if (localName.equals(Constants.RSS_SOURCE)) {
} else if (localName.equals(Constants.RSS_PICTURE)) {
DATA_VALUE = 2;
} else if (localName.equals(Constants.RSS_HITS)) {
DATA_VALUE = 3;
} else if (localName.equals(Constants.RSS_NEWS_TITLE)) {
DATA_VALUE = 1;
} else if (localName.equals(Constants.RSS_NEWS)) {
}
}
}
@Override
public void endElement(String namespaceURI,String qName) throws SAXException {
}
public void characters(char[] ch,int start,int length) throws SAXException {
String cdata = new String(ch,start,length);
if (DATA == 1) {
title.add(cdata.trim())
} else if (DATA == 2) {
photoUrl.add(cdata.trim())
} else if (DATA == 3) {
hits.add(cdata.trim())
}
}
}
我怎样才能避免在两个函数中使用如此多的 if-else——startElement() 和 characters()。我正在考虑使用一个临时数组列表并将其映射到所需的 Arraylist——(photoUrl、标题或点击数),就像在 C 中使用指针一样。
我能否避免在我的任务中为不同类型的字符串使用如此多的数组列表?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。