创建Android ArrayList错误

时间:2014-12-04 21:33:12

标签: java android arraylist

我正在从我的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而不是字符串,但我改变了它,因为我无法输出它,而且我不确定这是不是为什么。

1 个答案:

答案 0 :(得分:1)

编译器告诉您正在尝试将错误类型的对象添加到列表中。您已将列表定义为包含字符串,但您尝试添加的对象的类型为Animal。

您应该将列表定义为包含Animal对象:

ArrayList<Animal> animals = new ArrayList<Animal>();