2014-12-04 77 views
0

我解析XML文件中的數據並將其放入數組中,然後將數據輸出到另一個函數中。創建Android ArrayList錯誤

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); 
} 

我在這告訴我

在ArrayList類型的方法添加(字符串)不適用於參數的線

animals.add(currentAnimal); 

(AnimalList得到一個錯誤.Animal)

我本來有動物而不是字符串,但是我改了它一個我無法輸出它,我不確定這是爲什麼。

回答

1

編譯器告訴你,你正試圖將錯誤類型的對象添加到列表中。您已將該列表定義爲包含字符串,但您嘗試添加的對象類型爲Animal。

你應該定義你的列表,包含動物對象:

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

這就是我本來後來 – Navvy 2014-12-04 21:41:16

+0

私人無效printAnimals(ArrayList的動物) \t { \t \t動物[] animalArray =新的動物[ animals.size()]; \t \t animalArray = animals.toArray(animalArray); \t \t ListView listView =(ListView)findViewById(R.id.listViewAnimals); \t \t ArrayAdapter animalAdapter = new ArrayAdapter (this,android.R.layout.simple_list_item_1,animals); \t \t listView.setAdapter(animalAdapter); \t}將無法正常工作 – Navvy 2014-12-04 21:42:27

+0

您的代碼很難在評論中閱讀... – EJK 2014-12-04 21:45:15