public class ActivitySocketTest extends Activity {
TextView textview;
public void onCreate(Bundle savedInstanceState) {
Button send = (Button) findViewById(R.id.button);
textview = (TextView) findViewById(R.id.TextView01);
class ViewSocket extends View {
Handler handler = new Handler();
public ViewSocket(Context context) {
super(context);
startThread();
}
public void sendArrScreenToServer(){
public void startThread(){
new Thread(){
public void run(){
while (true) {
try {
String message = (String) dis.readUTF();
String[] packets = message.split(";");
textview.setText(packets[0].toString());
handler.post(new Runnable() {
public void run() {
invalidate();
}
});
System.out.println("message:" + message);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}.start();
}
}
}
================================================================================
코드가 너무 길어서 잘라서 붙여넣다 보니 많이 빠졌네요. ㅜ.ㅡ
지금 자바 UI 프로그램하고 소켓통신하는 프로그램을 연습차 만들고 있는 데요.
UI로 소켓통신으로 안드로이드 프로그램에서 송신은 잘 되는 데요.
받아지는 것도 잘 되는데
String message = (String) dis.readUTF();
String[] packets = message.split(";");
textview.setText(packets[0].toString());
여기서 셋텍스트를 하면 안드로이드가 죽는데 제가 사용방법을 잘못
알고 사용하는것 같은데. 왜 죽는 건지 고수님들 답변좀 부탁드려요.
5일 밤 새도 모르겠네요. ㅠ.ㅜ 살려주세요 고수님들.....
죄송합니다. ㅜ.ㅡ 그래도 너무 답답해서 다음부터는 로그캣 첨부하겠습니다.
어찌 해야 하나요?
final String packet = packets[0]; //이거 추가하시고
textview.setText(packet); //이거 handler.post안에 넣으세요




textview.setText(packets[0].toString());
이걸 조금 아래에 있는 handler.post 안에 넣으세요...
invalidate만 UI 작업이 아닙니다. setText도 UI작업입니다.
그리고 다음부터 오류로 질문하실때는 로그캣좀 첨부해주세요. 눈빌드도 하루이틀... ㅠ.ㅠ