public class ViewText extends ListActivity {
public void onResume(){
super.onResume();
View();
}
private void View() {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
ArrayList<NameValuePair> params = new ArrayList<NameValuePair>(1);
HttpResponse httpResponse = client.execute(post);
parserHandler.sendMessage(message);
}
}
});
thread.start();
}
private Handler parserHandler = new Handler() {
public void handleMessage(Message msg) {
XMLReader((String) msg.obj);
}
};
private void XMLReader(String xml) {
try {
DocumentBuilderFactory DBfactory = DocumentBuilderFactory
.newInstance();
DBfactory.setValidating(false);
DBfactory.setNamespaceAware(true);
DocumentBuilder DBbuilder = DBfactory.newDocumentBuilder();
Document document = DBbuilder.parse(new InputSource(
new StringReader(sb.toString())));
Element order = (Element) document.getDocumentElement();
NodeList indlist = order.getElementsByTagName("index");
NodeList viewMsg = order.getElementsByTagName("message");
NodeList viewSub = order.getElementsByTagName("subject");
NodeList viewId = order.getElementsByTagName("userid");
NodeList viewD = order.getElementsByTagName("date");
NodeList comlist = order.getElementsByTagName("comment");
NodeList cidlist = order.getElementsByTagName("com_userid");
NodeList cdatelist = order.getElementsByTagName("com_date");
String msgstr = viewMsg.item(0).getFirstChild().getNodeValue();
msgstr = msgstr.replaceAll("___", "\n");
String substr = viewSub.item(0).getFirstChild().getNodeValue();
substr = substr.replaceAll("___", "\n");
String idstr = viewId.item(0).getFirstChild().getNodeValue();
String datestr = viewD.item(0).getFirstChild().getNodeValue();
RecvID.setText(idstr);
viewMessage.setText(msgstr);
viewSubject.setText(substr);
viewDate.setText(datestr);
int i = 0;
clist = new ArrayList<ListData>();
while (i < comlist.getLength()) {
comstr = comlist.item(i).getFirstChild().getNodeValue();
cidstr = cidlist.item(i).getFirstChild().getNodeValue();
cdatestr = cdatelist.item(i).getFirstChild().getNodeValue();
comstr = comstr.replaceAll("___","\n");
ListData adddata = new ListData(comstr,cidstr,cdatestr);
clist.add(adddata);
i++;
}
cadapter = new TextAdapter(this,android.R.layout.simple_list_item_1, clist);
setListAdapter(cadapter);
}
private class TextAdapter extends ArrayAdapter<ListData> {
ArrayList<ListData> items;
public TextAdapter(Context context, int textViewResourceId, ArrayList<ListData> items) {
super(context, textViewResourceId, items);
this.items = items;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final int pos = position;
if (convertView == null) {
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = vi.inflate(R.layout.clist_row, null);
}
ListData list = items.get(position);
TextView viewcID = (TextView) findViewById(R.id.tv_cid);
TextView viewCom= (TextView) findViewById(R.id.txt_com);
TextView viewcDate= (TextView) findViewById(R.id.tv_cdate);
if (list != null) {
if (viewCom != null){
viewCom.setText(list.mComment);
}
if(viewcID != null){
viewcID.setText(list.mID);
}
if(viewcDate != null){
viewcDate.setText(list.mDate);
}
}
return convertView;
}
}
}
레이아웃은 텍스트뷰가있고 그 아랫쪽에 리스트뷰가 위치합니다 리스트뷰 즉 댓글 부분이 맨 위의 1개 값은 잘 나오는데 나머지 댓글은 모두 값이 나오지 않고 설정해놓은 초기값으로 나옵니다. 그런데 리스트 뷰 스크롤을 위아래로 왓다갓다 하면 값이 나오는듯 하다가 뒤죽박죽 섞입니다. 이거 왜 이런걸까요ㅠ