0

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(); 
     } 
    } 
} 

답변

0
tvStatus.setText(tvStatus.getText().toString+(Integer.toString(result) + System.getProperty("line.separator"))); 

이 당신이 텍스트 뷰

+0

그래,하지만 append()는 그게 뭐야? –

+0

http://developer.android.com/reference/android/widget/TextView.html#append(java.lang.CharSequence) – Pallavi

+0

'편의 메소드 : 지정된 텍스트를 TextView의 디스플레이 버퍼에 추가하여 BufferType.EDITABLE로 업그레이드합니다. 문서화에 따라 아직 편집 할 수없는 경우. 그것을 BUFFER에 추가합니다. 표시되는 텍스트가 아닙니다. – Pallavi

0

사용

에 텍스트 값을 설정하는 방법입니다
tsStatus.setText(result+" "+ System.getProperty("line.separator");