마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 XML 파싱 데이터를 배열변수에 저장하고 싶습니다.

0 추천

안녕하세요?
listview에 출력을 하고 싶어서 배열변수에 저장하려고 하는데요.
근데 이상하게
if(tagName.equals("title")) { Title = parser.getText(); /* Log.e("XML - title", parser.getText()); */ }
이방식은 잘 읽혀지고 저장이 됩니다.

if(tagName.equals("title")) { Title[i] = parser.getText(); /* Log.e("XML - title", parser.getText()); */ }
이렇게 해버리면 XML데이터를 저장 하지를 못합니다.

그리고 배열변수로 선언안하고
dataArr.add(new MyData(BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher), title, point) );

이렇게 Listview에 아이템을 추가하면 공백으로 출력이 됩니다.
혹시 배열변수에 데이터를 저장 하는 방법이 없을까요?

양창엽 님이 2014년 12월 9일 질문

1개의 답변

0 추천

전체 소스를 봐야 알듯한데요..

이거만 보면 잘 이해가 안되는..

 Title1 = parser.getText();

를 하고  Title[i] = Title1;

이렇게 하면 어떤가요?

 

i가 문제인거 같은데요..

 

doridori2013@nate.com (네이트온 가능)

 

익명사용자 님이 2014년 12월 9일 답변
/* TODO XML 관련 데이터 저장 변수 관련 구문 */
    Vector<String> Title = new Vector<String>(10); /* 상호명 관련 String 배열 변수 생성 */
    Vector<String> Tel = new Vector<String>(10); /* 전화번호 관련 String 배열 변수 생성 */
    Vector<String> Point = new Vector<String>(10); /* 장소 관련 String 배열 변수 생성 */
    Vector<String> URL = new Vector<String>(10); /* URL String 배열 변수 생성 */

/* XML 문서를 읽어 들이는 구문 */
                while (eventType != XmlPullParser.END_DOCUMENT)
                {
                    if(eventType == XmlPullParser.START_TAG)
                    {
                        tagName = parser.getName();
                        if(tagName.equals("channel")) { isItemTag = true; } /* XML channel 시작과 끝부분 */
                    } else if (eventType == XmlPullParser.TEXT && isItemTag)
                    {
                        if(tagName.equals("title")) { Title.addElement(parser.getText()); } /* 상호명 */
                        if(tagName.equals("phone")) { Tel.addElement(parser.getText()); /* Log.e("XML - phone", Tel); */ } /* 전화번호 */
                        if(tagName.equals("address")) { Point.addElement(parser.getText()); /* Log.e("XML - address", parser.getText()); */ } /* 장소 */
                        if(tagName.equals("placeUrl")) { URL.addElement(parser.getText()); /* Log.e("XML - placeUrl", parser.getText()); */ } /* URL */
                    } else if (eventType == XmlPullParser.END_TAG) { tagName = parser.getName(); if(tagName.equals("channel")) { isItemTag = false; } }
                    eventType = parser.next(); /* 다음 XML 객체로 이동 */
                }
vector로 바꿔 봤는데요.
저장은 되는데 ... log.e로 찍어볼려고
Log.e("dd", Title.get(i)); 로 하면 바로 오류가 뜨네요.
java.long.arrayIndexOutofBoundsException;
...