안드로이드 개발 질문/답변
(글 수 45,052)
import java.net.URL;
import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserFactory;
import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.util.Log; import android.view.Gravity; import android.view.View; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.Button; import android.widget.TextSwitcher; import android.widget.TextView; import android.widget.ViewSwitcher;
public class FourthNetwork extends Activity { Handler mHandler = new Handler();
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final TextSwitcher status = (TextSwitcher) findViewById(R.id.status); status.setFactory(new ViewSwitcher.ViewFactory() {
public View makeView() { TextView tv = new TextView(FourthNetwork.this); tv.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL); tv.setTextSize(24); return tv; }
});
Animation in = AnimationUtils.loadAnimation(this, android.R.anim.slide_in_left); Animation out = AnimationUtils.loadAnimation(this, android.R.anim.slide_out_right); status.setInAnimation(in); status.setOutAnimation(out);
status.setText("<no status>"); Button go = (Button) findViewById(R.id.do_action); go.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) { new Thread() { public void run() {
try { URL text = new URL("ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ URL넣는곳 ");
XmlPullParserFactory parserCreator = XmlPullParserFactory.newInstance(); XmlPullParser parser = parserCreator.newPullParser();
parser.setInput(text.openStream(), null);
mHandler.post(new Runnable() { public void run() { status.setText("Parsing..."); } }); int imgCount = 0; int parserEvent = parser.getEventType(); while (parserEvent != XmlPullParser.END_DOCUMENT) { switch (parserEvent) { case XmlPullParser.START_TAG: String tag = parser.getName(); if (tag.compareTo("link") == 0) { String relType = parser.getAttributeValue(null, "rel"); if (relType.compareTo("enclosure") == 0) { String encType = parser.getAttributeValue(null, "type"); if (encType.startsWith("image/")) { String imageSrc = parser.getAttributeValue(null, "href"); Log.i("Net", "image source = " + imageSrc); final int curImageCount = ++imgCount; mHandler.post(new Runnable() { public void run() { status.setText("imgCount = " + curImageCount); //save } }); } } } break; }
parserEvent = parser.next();
} mHandler.post(new Runnable() { public void run() { status.setText("Done..."); } });
} catch (Exception e) { Log.e("Net", "Error in network call", e); } } }.start();
}
}); } }
현재 요렇게 하면;;
해당 웹페이지가 파싱까진 되는걸 알겠는데;;
좀더 진도를 나갈려면. 파싱된 결과를 파일로 받던지해서,
화면에 보여줘야하는데;;;
아 이부분을 찾기가.....(완전..ㅠ) 어렵네요;;
어떻게 저떻게 해서 찾은 코드는 javax 요놈이 있어야한다는데;;
이거 깔아서 경로 설정하다가 시간다 보내고;;;;
음...
혹시 파싱된 결과를 화면에 보여줄 수 있는
함수나 그런거 없나요??
아웅.ㅠㅠ 쓰는 방법이랑 좀 같이 올려주시면.ㅠㅠ
2010.07.22 19:12:30
작업을 해서 무엇을 얻어왔냐를 봐야겠죠. 현재 저 예제에서는 imageSrc가 몇개 있는지 찾아보고
status.setText("imgCount = "
+ curImageCount); 로 갯수를 표시해보는게 목적같네요. 그게 목적의 전부이니 더이상은 진행할 필요가없죠.
혹시 모든 imageSrc를 (이름으로 보니 이미지겠죠?) 가져와 따로 표시해본다는 목적을 새로 추가해본다면(url에서 이미지 얻어오기란 목적),
URL url_Icon = new URL( imageSrc);
HttpURLConnection conn = (HttpURLConnection)url_Icon.openConnection();
어쩌고 저쩌고 하는걸 주욱 이어나가야겠죠.
저 쯤에서 뭔가 메소드를 넣어야 하지 않나 해서 걍 적어둔 겁니당!