我正在从我的XML文件中解析数据并将其放入一个数组中,然后继续在另一个函数中输出它。
private void parseXML(XmlPullParser parser) throws XmlPullParserException,IOException
{
ArrayList<String> animals = new ArrayList<String>();
int eventType = parser.getEventType();
Animal currentAnimal = null;
while (eventType != XmlPullParser.END_DOCUMENT)
{
String name = null;
switch (eventType)
{
case XmlPullParser.START_DOCUMENT:
//animals = new ArrayList();
break;
case XmlPullParser.START_TAG:
name = parser.getName();
if (name.equalsIgnoreCase( "animal"))
{
currentAnimal = new Animal();
}
else if (currentAnimal != null)
{
if (name.equalsIgnoreCase( "specificLocation"))
{
currentAnimal.specificLocation = parser.nextText();
}
else if (name .equalsIgnoreCase( "name")){
currentAnimal.name = parser.nextText();
}
else if (name .equalsIgnoreCase( "location"))
{
currentAnimal.location= parser.nextText();
}
else if (name .equalsIgnoreCase( "image"))
{
currentAnimal.image= parser.nextText();
}
else if (name .equalsIgnoreCase( "animalInfo"))
{
currentAnimal.animalInfo= parser.nextText();
}
else if (name .equalsIgnoreCase( "todaysFeed"))
{
currentAnimal.todaysFeed= parser.nextText();
}
}
break;
case XmlPullParser.END_TAG:
name = parser.getName();
if (name.equalsIgnoreCase("animal") && currentAnimal != null){
animals.add(currentAnimal);
}
}
eventType = parser.next();
}
printAnimals(animals);
}
我在第
行收到错误animals.add(currentAnimal);
告诉我
ArrayList类型中的方法add(String)不适用于参数(AnimalList.Animal)
我最初使用的是Animal而不是字符串,但我改变了它,因为我无法输出它,而且我不确定这是不是为什么。
答案 0 :(得分:1)
编译器告诉您正在尝试将错误类型的对象添加到列表中。您已将列表定义为包含字符串,但您尝试添加的对象的类型为Animal。
您应该将列表定义为包含Animal对象:
ArrayList<Animal> animals = new ArrayList<Animal>();