title: Android setText in asynctask
body: <p>I'm working on a UDP program but I'm having trouble with applying <code>setText</code> in my <code>asynctask</code>.  Basically on the UDP server, I just ask to input a port and then the server should connect to the localhost and the port.  A <code>TextView</code> in the middle of the layout says "Currently not connected" and when I click connect to a port, I want it to change to "Connected."  However, it is not doing anything.  I tried searching around but was unable to come up with a solution.  If anyone can help me figure out the problem that would be greatly appreciated.</p>
  
  <p>My Thread asynctask code: 
  EDIT: took <code>setText</code> out of doinbackground.  However, <code>setText</code> still is not functional.</p>
  
  <pre><code>public class ServerThread extends AsyncTask&lt;String, String, String&gt;{
      TextView chatbox;
      TextView amiconnected;
  
      @Override
      protected void onPreExecute(){
          chatbox = (TextView) findViewById(R.id.textView2);
          amiconnected = (TextView) findViewById(R.id.textView3);
          PORT = Integer.parseInt(((EditText) findViewById(R.id.editText1)).getText().toString());
      }
      @Override
      protected String doInBackground(String... arg0) {
  
          //open socket at specified port on the local host
          try {
              socket = new DatagramSocket(PORT);
              //listening
  
              byte[] buf = new byte[1024];
              DatagramPacket packet = new DatagramPacket(buf, buf.length);
              socket.receive(packet);
              text2 = new String("Now you're connected.");
              //convert received message to string
              text1 = new String(buf, 0, packet.getLength());
  
              //get client address from received packet
              //client_addr = packet.getAddress();
              //byte[] message = new byte[1024];
  
          } catch (Exception e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
          }
  
          return text2;
      }
  
      @Override
      protected void onPostExecute(String text2) {
          // TODO Auto-generated method stub
          super.onPostExecute(text2);
          chatbox.setText(text2);
  
      }   
  </code></pre>
  
  <p>EDIT: My entire UDP Server code</p>
  
  <pre><code>    package com.example.udpcomm;
  
  import java.net.DatagramPacket;
  import java.net.DatagramSocket;
  import java.net.InetAddress;
  
  import android.app.Activity;
  import android.os.AsyncTask;
  import android.os.Bundle;
  import android.view.View;
  import android.widget.Button;
  import android.widget.EditText;
  import android.widget.TextView;
  
  public class Server extends Activity{
      int PORT;
      DatagramSocket socket;
      InetAddress client_addr;
      String text1;
      String text2;
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          // TODO Auto-generated method stub
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_server);
          //chatbox = (TextView) findViewById(R.id.textView2);
          Button connectButton = (Button) findViewById(R.id.connectserver);
          connectButton.setOnClickListener(new Button.OnClickListener(){
              public void onClick(View v){
                  new ServerThread().execute();
              }
          });
      }
      //parameter string port (converted into int)
      //onprogressupdate (inputting string (?) into TextView)
      //on postexecute return null (?)
      public class ServerThread extends AsyncTask&lt;String, String, String&gt;{
          TextView chatbox;
          TextView amiconnected;
  
          @Override
          protected void onPreExecute(){
              chatbox = (TextView) findViewById(R.id.textView2);
              amiconnected = (TextView) findViewById(R.id.textView3);
              PORT = Integer.parseInt(((EditText) findViewById(R.id.editText1)).getText().toString());
          }
          @Override
          protected String doInBackground(String... arg0) {
  
              //open socket at specified port on the local host
              try {
                  socket = new DatagramSocket(PORT);
                  //listening
  
                  byte[] buf = new byte[1024];
                  DatagramPacket packet = new DatagramPacket(buf, buf.length);
                  socket.receive(packet);
                  text2 = new String("Now you're connected.");
                  //convert received message to string
                  text1 = new String(buf, 0, packet.getLength());
  
                  //get client address from received packet
                  //client_addr = packet.getAddress();
                  //byte[] message = new byte[1024];
  
              } catch (Exception e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
              }
  
              return text2;
          }
  
          @Override
          protected void onPostExecute(String text2) {
              // TODO Auto-generated method stub
              super.onPostExecute(text2);
              chatbox.setText(text2);
  
          }   
  
      }
  
  
  }
  </code></pre>