我有这个工作,在某个地方进行了更改,现在我无法追踪错误。
这是情况......当_regionList创建时,xml文件中有13个区域用于我正在使用的区域,但_regionlist / children / array有18个对象。使用不同的区域(50个元素),它创建了60个对象。
当然,数组中的其余对象具有空ID,这就是问题所在。关于如何在其中抛出额外物品的任何想法?
由于
//解析XML文件
public void Parse(InputStream inStream, String inRegion)
{
try {
String _region = inRegion;
this.cFactory = DocumentBuilderFactory.newInstance();
this.cBuilder = this.cFactory.newDocumentBuilder();
this.cBuilder.isValidating();
Document _document = this.cBuilder.parse(inStream, null);
_document.getDocumentElement().normalize();
NodeList _regionList = _document.getElementsByTagName(_region);
final int _length = _regionList.getLength();
for (int i = 0; i < _length; i++) {
final NamedNodeMap _attr = _regionList.item(i).getAttributes();
final String _regionName = GetNodeValue(_attr, "name");
// Construct a Region object
PropertiesRegion _regionObject = new PropertiesRegion(_regionName);
// Add to list
this.cList.add(_regionObject);
Log.d(TAG, _regionObject.toString());
}
}
catch (SAXException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
catch (ParserConfigurationException e)
{
e.printStackTrace();
}
}
答案 0 :(得分:0)
节点列表中的其他元素很可能是等等,因此在继续操作之前检查节点类型,可以帮助您解决问题:
Node node=_regionList.item(i);
if(node.getNodeType()!=3)
{
final NamedNodeMap _attr = node.getAttributes();
final String _regionName = GetNodeValue(_attr, "name");
// Construct a Region object
PropertiesRegion _regionObject = new PropertiesRegion(_regionName);
// Add to list
this.cList.add(_regionObject);
Log.d(TAG, _regionObject.toString());
}
答案 1 :(得分:0)
ArrayList(集合)中的其他空索引很好。问题出在TextView中,并将其连接到ArrayList。