2014-12-04 4 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에있어서, 추가 (String)를 인수 적용되지 않습니다

을 알려줍니다 라인

animals.add(currentAnimal); 

(AnimalList에서 오류를 받고 있어요 .Animal)

원래 문자열 대신 Animal을 사용했지만, 나는 그것을 출력 할 수 없었고, 그 이유가 확실하지도 않았다.

답변

1

컴파일러에서 잘못된 유형의 개체를 목록에 추가하려고합니다. 목록을 String을 포함하는 것으로 정의했지만 추가하려고하는 객체는 Animal 유형입니다.

당신은 동물 객체를 포함한 귀하의 목록을 정의해야합니다

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

그게 내가 원래 가지고 무엇을하지만 – Navvy

+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

+0

코드에서 주석을 읽는 것이 어렵습니다 ... – EJK