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

XmlPullParser 이용하여 api 부르기

0 추천

package com.cookandroid.parser;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

import android.util.Log;
import android.widget.Toast;

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserFactory;

import java.io.BufferedInputStream;
import java.net.URL;
import java.util.ArrayList;

public class ParserActivity extends Activity {
 
 public final static String PHARM_URL = "http://openapi.hira.or.kr/openapi/service/pharmacyInfoService/getParmacyBasisList";
 public final static String KEY = "eMdzD%2FPfwmnzpONr%2FWNdkxnti1L8FaQgFicGvGVKpdAcTQsa3ei1wAgWl1VWu4HSofpZw6kw9WHzQxzDkYnYGw%3D%3D";
 

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  new PharmParser().start();
 }
 
 class PharmParser extends Thread{

  @Override
  public void run() {
   try{
    apiParserSearch();
   } catch (Exception e) {
    // TODO Auto-generated method stub
    e.printStackTrace();
   }
   
   super.run();
  }
  
  public PharmParser(){
   
  }
 }
 
 public void apiParserSearch() throws Exception{
  
  URL url = new URL("http://openapi.hira.or.kr/openapi/service/pharmacyInfoService/getParmacyBasisList");
  
  XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
  factory.setNamespaceAware(true);
  XmlPullParser xpp = factory.newPullParser();
  BufferedInputStream bis = new BufferedInputStream(url.openStream());
  xpp.setInput(bis, "utf-8");
  
  String tag = null;
  int event_type = xpp.getEventType();
  
  ArrayList<String> list = new ArrayList<String>();
  
  String kill = null;
  
  while (event_type != XmlPullParser.END_DOCUMENT){
   if(event_type == XmlPullParser.START_TAG){
    tag = xpp.getName();
   } else if (event_type == XmlPullParser.TEXT){
    if(tag.equals("addr")){
     kill = xpp.getText();
    }
   } else if (event_type == XmlPullParser.END_TAG){
    tag = xpp.getName();
    if(tag.equals("item")){
     list.add(kill);
    }
   }
   
   event_type = xpp.next();
  }
  printList(list);
 }
 
 private void printList(ArrayList<String> list){
  for(String entity : list){
   System.out.println(entity);
  }
 }
 
 private String getURLParam(String search){
  String url = PHARM_URL+"?ServiceKey="+KEY;
  if(search != null){
   
  }
  return url;
 }
}

 

안드로이드 배운지 얼마안되서 질문드립니다.

제가 xmlpullparser 이용해 약국정보(주소와 전화번호)를 불러오고 싶은데 런 시키면 하얀 화면 밖에 안나오네요

일단 에러는 없는데.. 왜 api를 불러오지 못하는지 알고싶습니다..

안드로이드 프로젝트 생성할때 생성되는 Activity 에다가 코드를 작성했습니다.

도움좀 주시면 감사하겠습니다.

wwd873 (390 포인트) 님이 2016년 10월 11일 질문
일단 UI 에 뿌리는 코드는 안보이네요 단순 API 만 get 하는거면 당연히 하얀 화면 밖에 안나오는게 정상 입니다.
text나 구글맵에 보여줄려고 하는데 코드를 어떻게 짜야할까요? 혹시 참고 할만한 예제나 홈페이지 있으시면 도움 주시면 감사하겠습니다
안녕하세요 저도 이거 찾아보다가 text나 listview로 보여주려고 하는데 혹시 이 예제로 성공 하셨나요? 혹시 성공하셨으면 참고하셨던 예제나 홈페이지 있으시면 알려주시면 정말정말 감사드립니다. ㅠㅠ 부탁드려요~~ *^^*

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...