안드로이드 개발 질문/답변
(글 수 45,052)
우선 소스 올립니다.
try {
ServerIP = InetAddress.getByName(IP);
socket = new Socket(ServerIP, port);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
StringTokenizer st = new StringTokenizer(in.readLine(), "|");
while(st.hasMoreTokens()) {
str = st.nextToken();
ar.add(str);
}
} catch (Exception e) {
// TODO Auto-generated catch block
}
Adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, ar);
ListView list = (ListView)findViewById(R.id.ListView01);
list.setAdapter(Adapter);
list.setChoiceMode(ListView.CHOICE_MODE_SINGLE); // 리스트뷰 하나만 선택하는 모드
list.setDividerHeight(2); // 경계선 굵기 지정
list.setOnItemClickListener(onItemClickListener); // 리스트 짧게 클릭시
list.setOnItemLongClickListener(longItemClickListener); // 리스트 길게 클릭시
요렇게 MFC로 제작한 프로그램에서 데이터를 불러와서 리스트뷰에 올립니다.( 리스트 박스같은 개념이죠~)
그 후 메시지박스로 버튼 구현후 버튼 이벤트를 등록합니다.
DialogInterface.OnClickListener positiveButton = //킬 버튼 클릭시 이벤트 발생
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
new AlertDialog.Builder(Test2.this)
.setTitle("Kill")
.setMessage("종료 하시겠습니까?")
.setPositiveButton("확인", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int whichButton){
Toast.makeText(Test2.this,"킬버튼 클릭",Toast.LENGTH_SHORT).show();
//소켓통신으로 메시지 보내주는 부분
try {
ServerIP = InetAddress.getByName(TestIP);
socket = new Socket(ServerIP, Testport);
out = socket.getOutputStream();
dos = new DataOutputStream(out);
String str1 = "200|" + ar.get(pos).toString() + "|";
dos.writeUTF(str1);
dos.close();
socket.close();
} catch (Exception e) {
// TODO Auto-generated catch block
}
//리스트뷰 갱신하는 부분
}
})
.setNegativeButton("취소", null).show();
}
};
메시지를 보내주면 MFC로 제작한 프로그램에서 실행후 갱신된 데이터를 다시 받아와서 리스트뷰에 뿌려줘야 하는데..
이게 위에처럼 리스트뷰를 선언하면 완전 꼬여버릴꺼 같은데요
메시지 보내고 소켓 닫고 바로 자기 엑티비티 처음으로 그러니까 onCreate로 돌아가는 방법 없을까요~?
이거만 하면 ㅎㄷㄷ...빨간날...방에 내리갈수 있을겁니다!!