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

xmlpullparser 질문인데요 . 다른 글을봐도 해결 못해서 올려봅니다

0 추천


 
package com.example.androidapp;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.widget.TextView;

public class MainActivity extends Activity {
 String auth_code = "Key";

 TextView tv;
 Handler handler = new Handler();
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.xml.main);
        tv = (TextView) findViewById(R.id.textView1);

        new Thread() {
         public void run() {
          connect();
         }
        }.start();
    }
    
    StringBuilder strBuilder = new StringBuilder();
    private void connect() {
     try{
         
         String strUrl = "http://openapi.jejutour.go.kr:8080/openapi/service/TourCourseService/getTourCosList?ServiceKey="+auth_code;

            URL url = new URL(strUrl);
            HttpURLConnection conn = (HttpURLConnection)url.openConnection();
            if(conn!=null) {
       conn.setConnectTimeout(10000);
       conn.setRequestMethod("GET");   
       int resCode = conn.getResponseCode();
       if(resCode == HttpURLConnection.HTTP_OK) {
           InputStream is = conn.getInputStream();
           InputStreamReader isr = new InputStreamReader(is, "UTF-8");
           BufferedReader br = new BufferedReader(isr);
           String line = null;
           while((line=br.readLine())!=null) {
        strBuilder.append(line+"\n");
        
           }
           
           br.close();
           conn.disconnect();
       }
        
      }
      handler.post(new Runnable() {
       public void run() {
           tv.setText(strBuilder.toString());
       }
      });
     }catch(Exception ex) {
      ex.printStackTrace();
      Log.e("접속오류", ex.toString());
      
 
     }
    }

}

위의 소스는 URL connection 부분
 

 

이렇게 스마트폰 화면에 출력 됩니다.  여기까진 잘 되가고 있는데

URL connection 한 후 스마트폰에서의 화면

 

문제는 아래의 소스였습니다. 

제가 아직 이 소스를 다 이해하지 못 했는데

listview로 뿌려주는 것이 안되고  위의 xml 처럼 실행됩니다. 로그를 찍어봤떠니 URLconnection 부분만 실행이 되더군요..  왜 이런 걸 까요?

l

 

 

package com.example.androidapp;

import java.util.ArrayList;

import org.xmlpull.v1.XmlPullParser;

import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

 

public class XmlPullparser extends ListActivity {

 

 ArrayList<String> items = new ArrayList<String>();


 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_xml_pullparser);

  
  try{
   XmlPullParser xpp = getResources().getXml(R.xml.main); // main.xml을 가지고와서 xmlPullparser 에 넣는다. 
   while(xpp.getEventType()!=XmlPullParser.END_DOCUMENT){
    if(xpp.getEventType()==XmlPullParser.START_TAG){ // 태그의 첫번 째 속성일 때 
     if(xpp.getName().equals("ttTitle")){  // 태그의 이름이 "ttTitle" 일 떄  첫번 째 속성값을 Arraylist에 저장
      items.add(xpp.getAttributeValue(0));
     }
    }
    xpp.next();   // 다음 태그로 이동 
   } // end of while()
  }catch(Throwable t){
   Toast.makeText(this, "오류", Toast.LENGTH_SHORT).show();
  }
  
  ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,      // ArrayAdapter에 ArrayList를 넣어서 ListView에 등록한다.
  android.R.layout.simple_list_item_1, items);
  
  ListView list = (ListView)findViewById (R.id.list1);
  list.setAdapter(adapter);

 }
}

 

 

 

 

앱등! (400 포인트) 님이 2014년 1월 17일 질문

1개의 답변

+1 추천
 
채택된 답변

http://biig.tistory.com/2

 

여기서

 

public void parsing() 부분과

 

public void stream() 부분을 참고해보심이

음무 (17,820 포인트) 님이 2014년 1월 17일 답변
앱등!님이 2014년 1월 17일 채택됨
알겠습니다.! 감사합니다 그런데 이거 봐도 잘 모르겠더군요.. 이거 참고해서 했었었는데 너무 어려워서원 저 소스는 돌아가지도 않고..
그리고 음무님이 참고하라고 알려주신 자료는 하나의 엑티비티네요

혹시 제 엑티비티 두개를 하나로 합칠려면 어떻게해야하나요..
액티비티를 굳이 하나로 합칠 필요는 없는데..

일단 예제소스가 안돌아간다고 하시니 한번 확인해보겠습니다.

확인해보고 다시 올릴께요
예제 프로젝트 안에 weather 패키지를 삭제해주세요. 다른거랑 섞여버린듯하네요
알겠습니다 . 한번 해보겠습니다.
...