package se.ks;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.ArrayList;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class boardbody extends Activity implements OnItemClickListener {
String server = "123.123.123.123"; // 서버 ip주소
int port = 9904;
String s="";
String str;
public Socket socket = null;
//public chatThread cThread = null;
public PrintWriter streamOut = null;
public BufferedReader streamIn = null;
String boardlist;
public ArrayList<boarditem> mItems;
public BoardDBAdapter mAdapter;
TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.boardbody);
Intent intent = getIntent();

boardlist = intent.getStringExtra("param1");

connect(server, port);
Toast.makeText(this, "잠시만 기다려주세요.", Toast.LENGTH_LONG).show();
mItems = new ArrayList<boarditem>();

mAdapter = new BoardDBAdapter(this, R.layout.boarddblayout, mItems);
        ListView list = (ListView) findViewById(R.id.boardsublist);
        list.setAdapter(mAdapter);
        list.setOnItemClickListener((OnItemClickListener) this);
        
        mAdapter.notifyDataSetChanged();
        
}

public void connect(String server, int port) {
try {
socket = new Socket(server, port);
streamOut = new PrintWriter(socket.getOutputStream(), true); // 출력용스트림
streamIn = new BufferedReader(new InputStreamReader(
socket.getInputStream(), "utf-8")); // 입력용 스트림

new Chat_Send_Thread(socket, boardlist).start();
/*cThread = new chatThread();
cThread.start();*/
} catch (Exception e) {
}
}
public class Chat_Send_Thread extends Thread {
Socket socket;
String chat;

public Chat_Send_Thread(Socket socket, String chat) {
this.socket = socket;
this.chat = chat;
}

@Override
public void run() {
try {
// Scanner ki = new Scanner(System.in);
streamOut.println(chat);
streamOut.flush();
} catch (Exception e) {
e.printStackTrace();
}
new Chat_Recive_Thread().start();
}
}
class Chat_Recive_Thread extends Thread {
private boolean flag = false; // 스레드 유지(종료)용 플래그

public void run() {
try {
while (!flag) { // 플래그가 false일경우에 루프
String msgs;
Message msg = new Message();
msg.what = 0;
msgs = streamIn.readLine(); // 서버에서 올 메세지를 기다린다.
msg.obj = msgs;

mHandler.sendMessage(msg); // 핸들러로 메세지 전송
}
} catch (Exception e) {
}
}
}
Handler mHandler = new Handler() { // 스레드에서 메세지를 받을 핸들러.
public void handleMessage(Message msg) {
switch (msg.what) {
case 0: // 채팅 메세지를 받아온다.
s = msg.obj.toString();
String a[] = s.split("[|]+");
mItems.add(new boarditem(a[0],a[1],a[2]));
break;
case 1: // 소켓접속을 끊는다.
try {
socket.close();
socket = null;
} catch (Exception e) {
finish();
}
break;
}
}
};

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
// TODO Auto-generated method stub
}

}

소스 중에 볼더 넣어논 부분에서 mitems.add가 되질 않는거 같습니다. 저위치에서 settext하면 문구들이 나오는데
oncreate 부분에가서 settext하면 문자가 없는걸로 확인됩니다.

boarditem.java 따로 정의 해놧구요. // 필요한 정보들 저장하는 클래스
BoardDBAdapter.java 도 따로 정의해 둿습니다. // 리스트뷰하나에 들어가는 layout정의

도저히 왜그런지 모르겠네요.