안드로이드 개발 질문/답변
(글 수 45,052)
lv = (ListView) findViewById(R.id.listView); // ListView를 보여주는 부분
sa = new SimpleAdapter(this, list_board, R.layout.row_board,
new String[] { "number", "id", "subject", "content","date" },
new int[] { R.id.board_subject, R.id.board_date,R.id.board_writer,R.id.textView3,R.id.textView2,
});
lv.setAdapter(sa);
contents = new ArrayList<String>();
lv.setAdapter(sa);
public void rssParse() {
final Handler mHandler = new Handler();
new Thread() {
public void run() {
//list_board.clear();
//status.setText("파싱 시작함"); //
// 데이터 가지고 오기 시작
try {
URL text = new URL("http://203.230.103.94:9000/picky_member/mymoney_payboard); // 주소확인 바래요!
XmlPullParserFactory parserCreator = XmlPullParserFactory
.newInstance();
XmlPullParser parser = parserCreator.newPullParser();
parser.setInput(text.openStream(), null);
int parserEvent = parser.getEventType();
String tag = "";
boolean inTitle = false; // 제목여부판단
boolean inItem = false; // 아이템변경 판단
boolean inWriter = false; // 작성자 판단
boolean inDate = false; // 작성일
boolean inContent = false; // 내용
boolean inpage = false;
boolean inbob = false;
boolean inhit = false;
int count = 0;
contents.clear(); // 가지고왔던 콘텐츠를 모두 삭제함
String str;
do {
Log.i("test", "" + count);
switch (parserEvent) {
case XmlPullParser.TEXT:
tag = parser.getName();
//제목
if (inItem && inTitle) {
str = parser.getText();
map.put("number", str);
}
// 작성일
if (inItem && inDate) {
str = parser.getText();
map.put("id", str);
}
// 작성자
if (inItem && inWriter) {
str = parser.getText();
map.put("subject", str);
}
if (inItem && inpage) {
str = parser.getText();
map.put("content", str);
}
if (inItem && inbob) {
str = parser.getText();
map.put("date", str);
}
break;
case XmlPullParser.END_TAG:
tag = parser.getName();
// 태그가 끝나면...
if (tag.compareTo("list") == 0) {
inItem = false;
list_board.add(map);
}
if (tag.compareTo("number") == 0) {
inTitle = false;
}
if (tag.compareTo("id") == 0) {
inWriter = false;
}
if (tag.compareTo("subject") == 0) {
inDate = false;
}
if (tag.compareTo("content") == 0) {
inpage = false;
}
if (tag.compareTo("date") == 0) {
inbob = false;
}
break;
case XmlPullParser.START_TAG:
tag = parser.getName();
Log.i("test", "tag START " + tag);
// 시작하는 태그
if (tag.compareTo("list") == 0) {
inItem = true;
map = new HashMap<String, Object>();
}
//
if (tag.compareTo("number") == 0) {
inTitle = true;
}
//
if (tag.compareTo("id") == 0) {
inWriter = true;
}
//
if (tag.compareTo("subject") == 0) {
inDate = true;
}
//
if (tag.compareTo("content") == 0) {
inpage = true;
}
if (tag.compareTo("date") == 0) {
inbob = true;
}
break;
}
//status.setText("파싱중: " + String.valueOf(count));
parserEvent = parser.next();
count++;
System.out.println("읽었을걸!");
} while (parserEvent != XmlPullParser.END_DOCUMENT);
} catch (Exception e) {
Log.i("AAA", "AAAAAAAAAAAAAA" + e);
}
mHandler.post(new Runnable() {
public void run() {
pd.cancel();
sa.notifyDataSetChanged();
}
});
// Log.i("test", e.toString());
// String str = "data : \n";
// str += "subject : " + map.get("subject")+"\n";
// str += "rowid : " + map.get("rowid") +"\n";
// str += "reg_date : " + map.get("reg_date")+"\n";
// str += "content : " + map.get("content");
//
// status.setText(str);
// pd.dismiss();
}
}.start();
}
이렇게 소스를 짯는데요...4개의 리스트가 보여야하는데..
마지막 데이터만 보여지네요..1개의 리스트가 보여지는데..
왜그런지 조언좀 부탁드립니다!
<list>
</list>