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 부분
이렇게 스마트폰 화면에 출력 됩니다. 여기까진 잘 되가고 있는데
ㅇ
문제는 아래의 소스였습니다.
제가 아직 이 소스를 다 이해하지 못 했는데
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);
}
}