|
public class ConMain extends Activity {
public ArrayList<ContentMsg> list = new ArrayList<ContentMsg>(); public ListView contentList;
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.main); contentList = (ListView) findViewById(android.R.id.list); sendMsg("퀴즈를 시작합니다.|",1);
contentList.setAdapter(new ContentMsgViewAdapter(this,list));<=======리스트 셋팅
inputTxt = (EditText) findViewById(R.id.input_box);//답안작성 sendButton = (Button) findViewById(R.id.send); // 전송 new SocketClient(this); sendButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { if (SocketClient.cSocket != null) { msg = "2016년월드컵 개최지는?|독일"; SocketClient.sendMessage(msg); sendMsg(msg,1); inputTxt.setText(""); sendMsg("틀렸습니다. 정답은 브라질입니다.|X",2); } else { inputTxt.setText(""); sendMsg("서버와 연결이 종료되었습니다.|",1); } } }); }
private String getDate() { SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); Date d = new Date(); return sdf.format(d); } public void sendMsg(String msg,int partInt) { msg = msg.toString(); String date = getDate(); Log.d("받은값:","msg:"+msg+"__"+contentList); } . . . }
SocketClient.java
public class SocketClient implements Runnable { public static Socket cSocket = null; public ConMain conmain = new ConMain(); public static PrintWriter streamOut = null; public static BufferedReader streamIn = null; chatThread cThread = new chatThread(); public TcpClient(Activity activity) { super(); } . .서버와 통신을 위한 쓰레드 /핸들러... 부분 msg ="2020년 월드컵 개최지는?" RequestSend(msg); . . public void RequestSend(String msg) { <=====서버에서 받은 값을 위 ConMain.java 파일의 sendMsg()로 값을넘기면 오류 발생됩니다. try { conmain.sendMsg(msg,2); }catch(Exception e){} } . } 대략 소스는 위와 같습니다 리스트에 서버에서 받은 값을 리스트뷰에 등록하여 보여지게 할려고 하는데 오류가 발생이 됩니다.
테스트 과정은 ConMain에서 값을 입력하고 send버튼을 클릭하면 sendButton.setOnClickListener(new OnClickListener() 부분이 실행되어 메세지도 리스트뷰에 잘 등록도 됩니다 에러도 없구요 그런데 서버로 보내고 서버에서 받아 SocketClient.java에서 RequestSend(String msg)로 서버에서 받은 메세지를 conmain.send(msg,2) 이렇게 보내면
여기서 오류가 발생이 됩니다. 로그를 찍어보면 Null포인트 익셉션이 발생됩니다.
이렇게 잘 되는데 SocketClient.java 에서 값을 받아서 호출하였을 경우
받은값:2020년 월드컵 개최지는?__null
이렇게 null이 되어버리네요 이것저것 다 해봐도 오류를 잡을수 없어 이렇게 도움을 요청드립니다.
고수님들의 조언 부탁드립니다.
감사합니다.
|