package com.example.final_project;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.concurrent.DelayQueue;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import android.R.bool;
import android.app.Activity;
import android.content.Intent;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
public class select_Thread extends Activity implements Runnable {
public static ArrayList<Thread_result> rdata;
Thread_result t;
Handler handler = new Handler() {
public void handleMessage(Message msg) {
t = (Thread_result) msg.obj;
MainActivity.mAdapter.addItem(t.getName(), t.getNumber(),
t.getlocation());
}
};
public void run() {
try {
String enter = "basic_select";
URL connection = new URL("http://203.247.41.242/" + enter + ".php");
connection.openStream();
URL server = new URL("http://203.247.41.242/" + enter + ".xml");
XmlPullParserFactory parserCreator = XmlPullParserFactory
.newInstance();
XmlPullParser parser = parserCreator.newPullParser();
InputStream is = server.openStream();
parser.setInput(is, "UTF-8");
int parserEvent = -1;
String START = "";
String TEXT_TAG = "deflut";
String END = "";
String nameTag = null, Number = "deflut", locationTag = null;
while (parserEvent != XmlPullParser.END_DOCUMENT) {
switch (parserEvent) {
case XmlPullParser.START_TAG:
START = parser.getName();
// Log.i("START", parser.getName());
break;
case XmlPullParser.TEXT:
TEXT_TAG = parser.getText();
// Log.i("TEXT", parser.getText());
break;
case XmlPullParser.END_TAG:
END = parser.getName();
// Log.i("END", parser.getName());
break;
}
Message msg = Message.obtain();
if (START.equals(END)) {
// Log.i("START", START);
if (START.equals("item_number")) {
// Log.i("start", "start : " + START);
// Log.i("Text", TEXT_TAG);
// Log.i("end", "end : " + END);
Number = TEXT_TAG;
Log.i("here1", "번호"+Number);
} else if (START.equals("name")) {
nameTag = TEXT_TAG;
//
} else if (START.equals("location")) {
locationTag = TEXT_TAG;
Thread_result data = new Thread_result();
data.setName("이 름 : " + nameTag);
data.setNumber("물품번호 : " + Number);
data.setlocation("사용장소 : " + locationTag);
msg.obj = data;
handler.sendMessage(msg);
}
}
parserEvent = parser.next();
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
Log.i("tag", "URL _ error");
e.printStackTrace();
} catch (XmlPullParserException e) {
// TODO Auto-generated catch block
Log.i("tag", "XML _ error");
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// TODO Auto-generated method stub
}
}
위처럼 소스코딩해서 파싱했는데 nameTag와 locationTag는 정상적으로 작동하여 ListView까지 출력되는데
유독 Number만 해결이 안됩니다.
05-10 19:16:43.084: I/here1(17129): 번호201005-0009-001
05-10 19:16:43.084: I/here1(17129): 번호
05-10 19:16:43.089: I/here1(17129): 번호201005-0009-002
05-10 19:16:43.089: I/here1(17129): 번호
05-10 19:16:43.094: I/here1(17129): 번호201006-0010-001
05-10 19:16:43.094: I/here1(17129): 번호
로그캣으로 확인한 결과 NULL값이 2번들어와서 NULL값이 전달되는거 같은데.. 도대체 왜 이렇게 되는지 이해를 할 수가 없습니다.
<?xml version = "1.0" encoding = "utf-8"?>
<DB_20080918>
<data>
<department>컴퓨터공학과</department>
<item_number>201005-0009-001</item_number>
<name>컴퓨터(본체)</name>
<manager>기타</manager>
<location>090908-0</location>
<use>교보재</use>
<state>양호</state>
<price>1660000 </price>
<user></user>
<invest_date></invest_date>
<purchase_date></purchase_date>
<dump_data></dump_data>
</data>
<data>
<department>컴퓨터공학과</department>
<item_number>201005-0009-002</item_number>
<name>컴퓨터(본체)</name>
<manager>기타</manager>
<location>090908-0</location>
<use>교보재</use>
<state>양호</state
><price>1660000 </price>
<user></user>
<invest_date></invest_date>
<purchase_date></purchase_date>
<dump_data></dump_data>
</data>
</DB_20080918>
XML파일은 위와같은 형식으로 구성되어 있습니다.