안드로이드 개발 질문/답변
(글 수 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();
어쩌고 저쩌고 하는걸 주욱 이어나가야겠죠.




저 쯤에서 뭔가 메소드를 넣어야 하지 않나 해서 걍 적어둔 겁니당!