onPostExecute에서 tvStatus (TextView)를 추가하고있는 것을 볼 수 있으며 내 progressDialog 상자를 제거한 후 볼 수 있습니다. 내 코드를 디버깅 할 때 tvStatus 값이 설정되어 있지만 화면에 표시되지 않는 것을 볼 수 있습니다.실행 후 TextView가 추가되지 않음
또한 내 progressDialog는 onPostExecute 함수가 호출 된 후 회전을 멈 춥니 다. 이유와 해결 방법을 아는 사람이 있습니까?
이것은에서 onCreate 방법으로 설정됩니다
tvStatus = (TextView) this.findViewById(R.id.tvStatus);
코드 :
public class TcpTask extends AsyncTask<Void, Void, Integer> {
@Override
protected Integer doInBackground(Void... params) {
try {
//set up a Connection
Socket s = new Socket("88.26.249.133", TCP_SERVER_PORT);
InputStream inputstream = (s.getInputStream());
DataInputStream in = new DataInputStream(inputstream);
DataOutputStream out = new DataOutputStream(s.getOutputStream());
s.setSoTimeout(20*1000);
//prepare output message
outBuffer[0] = 48;
outBuffer[1] = 51;
outBuffer[2] = 49;
outBuffer[3] = 49;
outBuffer[4] = 0;
outBuffer[5] = 0;
//send output message
out.write(outBuffer);
out.flush();
//To check in logCat
Log.i("TcpTask", "sent: " + outBuffer);
//check # available data
//and use it as byte length
avail = in.available();
byte[] inBuffer = new byte[avail];
//accept server response
while ((nob = in.read(inBuffer)) != -1) {
}
//close stream
in.close();
for (int i = 7; i < avail-7; i += 2) {
lowByte = inBuffer[i];
highByte = inBuffer[i+1];
if (lowByte < 0) {
result = lowByte + 256 + (highByte * 256);
} else {
result = lowByte + (highByte * 256);
}
}
//close connection
s.close();
//To Check in logCat
Log.i("TcpTask", "received: " + inBuffer);
// if the host name could not be resolved into an IP address.
} catch (UnknownHostException e) {
e.printStackTrace();
Log.i("myStatus", "TcpClient: Host name could not be resolved");
// if an error occurs while creating the socket.
} catch (IOException e) {
e.printStackTrace();
Log.i("myStatus", "TcpClient: ERROR");
} finally {
Log.i("TcpTask", "TCPClient: Finished");
}
return result;
}
@Override
protected void onPostExecute(Integer result) {
tvStatus.append(Integer.toString(result) + System.getProperty("line.separator"));
if (myStatus.this.progDialog != null) {
myStatus.this.progDialog.dismiss();
}
}
}
그래,하지만 append()는 그게 뭐야? –
http://developer.android.com/reference/android/widget/TextView.html#append(java.lang.CharSequence) – Pallavi
'편의 메소드 : 지정된 텍스트를 TextView의 디스플레이 버퍼에 추가하여 BufferType.EDITABLE로 업그레이드합니다. 문서화에 따라 아직 편집 할 수없는 경우. 그것을 BUFFER에 추가합니다. 표시되는 텍스트가 아닙니다. – Pallavi