지금 기사를 파싱중인데
값은 넘어오는거 같은데 출력이 안됩니다.
초보라서 질문드립니다.
답변부탁드립니다..ㅜ
package com.rss;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserFactory;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
public class RSS_TestActivity extends Activity {
/*
* @author 프리돔
*
* @website http://onedays.co.kr 일단 안드로이드 메니페스트 파일에서 퍼미션을 추가해주세요.( 본프로젝트는
* 추가되어져 있습니다!)
*/
private ArrayList<HashMap<String, String>> list_board = new ArrayList<HashMap<String, String>>();
private HashMap<String, String> map;
private SimpleAdapter sa;
private ArrayList<String> contents;
private String baseballURL =
"http://www.chosun.com/site/data/rss/baseball.xml";
//private String url = "http://www.dsu.ac.kr/V6/nbd060200/rss";
static final int PROGRESS_DIALOG = 0;
private ListView lv;
private TextView status;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
status = (TextView) findViewById(R.id.textView1);
lv = (ListView) findViewById(R.id.listView1);
sa = new SimpleAdapter(this, list_board, R.layout.row_board,
new String[] { "subject", "date", "writer" },
new int[] { R.id.board_subject, R.id.board_date,
R.id.board_writer });
lv.setAdapter(sa);
contents = new ArrayList<String>();
rssParse(baseballURL);
}
// 데이터가지고 오기
private void rssParse(String url) {
list_board.clear();
try {
URL text = new URL(url);
XmlPullParserFactory parserCreator = XmlPullParserFactory
.newInstance();
XmlPullParser parser = parserCreator.newPullParser();
parser.setInput(text.openStream(), null);
status.setText("파싱중...");
int parserEvent = parser.getEventType();
String tag = "";
boolean inTitle = false; // 제목여부판단
boolean inItem = false; // 아이템변경 판단
boolean inWriter = false; // 작성자 판단
boolean inDate = false; // 작성일
boolean inContent = false; // 내용
// XML 날짜 형식 변환하기
SimpleDateFormat sdf = new SimpleDateFormat(
"yyyy년 MM월 dd일 HH시 mm분 ss초");
Date pubdate = null;
int count = 0;
contents.clear(); // 가지고 있던 콘텐츠를 모두 삭제함
do {
Log.i("test", "" + count);
switch (parserEvent) {
case XmlPullParser.TEXT:
tag = parser.getName();
// 제목
if (inItem && inTitle) {
map.put("subject", parser.getText());
}
// 작성일
if (inItem && inDate) {
pubdate = new Date(Date.parse(parser.getText()));
map.put("date", sdf.format(pubdate));
}
// 작성자
if (inItem && inWriter) {
map.put("writer", parser.getText());
}
// 내용
if (inItem && inContent) {
// map.put("content", parser.getText());
contents.add(parser.getText());
}
break;
/*
*제목여부판단 boolean inTitle = false;
*아이템변경 판단 boolean inItem = false
*작성자 판단 boolean inWriter = false;
*작성일 boolean inDate = false;
*내용 boolean inContent = false;
*
*/
case XmlPullParser.END_TAG:
tag = parser.getName();
// 태그가 끝나면
if (tag.compareTo("item") == 0) {
inItem = false;
list_board.add(map);
}
if (tag.compareTo("title") == 0) {
inTitle = false;
}
if (tag.compareTo("description") == 0) {
inContent = false;
}
if (tag.compareTo("dc:date") == 0
|| tag.compareTo("date") == 0) {
inDate = false;
}
if (tag.compareTo("dc:creator") == 0
|| tag.compareTo("author") == 0) {
inWriter = false;
}
break;
/*
* item=item
* description
* author
* category
*/
case XmlPullParser.START_TAG:
tag = parser.getName();
// 만약 item으로 시작하는 태그라면
if (tag.compareTo("item") == 0) {
inItem = true;
map = new HashMap<String, String>();
}
// 만약 title 로 시작하는 태그라면
if (tag.compareTo("title") == 0) {
inTitle = true;
}
if (tag.compareTo("description") == 0) {
inContent = true;
}
if (tag.compareTo("dc:date") == 0
|| tag.compareTo("date") == 0) {
inDate = true;
}
// 만약 dc:creator 이거나 author 태그라면
if (tag.compareTo("dc:creator") == 0
|| tag.compareTo("author") == 0) {
inWriter = true;
}
// 만약 pubDate 태그라면
// 만약 description 태그라면
break;
}
status.setText("파싱중: " + String.valueOf(count));
parserEvent = parser.next();
count++;
} while (parserEvent != XmlPullParser.END_DOCUMENT);
status.setText("파싱 끝");
sa.notifyDataSetChanged();
} catch (Exception e) {
}
}
}