title: Returning an array[] from AsyncTask back to Main Activity
body: <p>I am trying to return an array from my AsyncTask back to my Activity as I am trying to create a ListView from that array.
  Unfortunately, the program bounds error because it wouldn't let me return an array. My codes are as below:</p>
  
  <p>MainMenu Class:</p>
  
  <pre><code>public class MainMenu extends Activity {
  String username;
  public String[] returnValue;
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main_menu);
      username ="user1";  
  
  if (checkInternetConnection()) {
  
      try {
          MainAsyncTask mat = new MainAsyncTask(MainMenu.this);
          mat.execute(username);
      } catch (Exception e) {
          e.printStackTrace();
      }
  } else {
      Toast.makeText(getApplicationContext(),"No internet connection. Please try again later",Toast.LENGTH_SHORT).show();
      }
  }
  
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
      // Inflate the menu; this adds items to the action bar if it is present.
      getMenuInflater().inflate(R.menu.activity_main_menu, menu);
      return true;
  }
  
  private boolean checkInternetConnection() {
      ConnectivityManager conMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
  
      if (conMgr.getActiveNetworkInfo() != null
              &amp;&amp; conMgr.getActiveNetworkInfo().isAvailable()
              &amp;&amp; conMgr.getActiveNetworkInfo().isConnected()) {
          return true;
      } else {
          return false;
      }
  }}
  </code></pre>
  
  <p>MainAsyncTask:</p>
  
  <pre><code>public class MainAsyncTask extends AsyncTask&lt;String, Void, Integer&gt; {
      private MainMenu main;
      private String responseText, http;
      private Ipaddress ipaddr = new Ipaddress(http);
      private Context context;
  
      public MainAsyncTask(MainMenu main) {
          this.main = main;
      }
  
      protected Integer doInBackground(String... arg0) {
          int responseCode = 0;
          try {
              HttpClient client = new HttpClient(main.getApplicationContext());
              Log.e("SE3", ipaddr.getIpAddress());
              HttpPost httpPost = new HttpPost(ipaddr.getIpAddress()
                      + "/MainServlet");
  
              List&lt;NameValuePair&gt; nvp = new ArrayList&lt;NameValuePair&gt;();
  
              JSONObject json = new JSONObject();
              json.put("username", arg0[0]);
  
              Log.e("SE3", arg0[0]);
  
              nvp.add(new BasicNameValuePair("data", json.toString()));
              httpPost.setEntity(new UrlEncodedFormEntity(nvp));
  
              HttpResponse response = client.execute(httpPost);
  
              if (response != null) {
                  if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                      try {
                          BufferedReader reader = new BufferedReader(
                                  new InputStreamReader(response.getEntity()
                                          .getContent()));
                          StringBuilder sb = new StringBuilder();
                          String line;
                          while ((line = reader.readLine()) != null) {
                              sb.append(line);
                          }
                          responseText = sb.toString();
                      } catch (IOException e) {
                          Log.e("SE3", "IO Exception in reading from stream.");
                          responseText = "Error";
                      }
                  } else {
                      responseText = "Error";
                  }
              } else {
                  responseText = "Response is null";
              }
          } catch (Exception e) {
              responseCode = 408;
              responseText = "Response is null";
              e.printStackTrace();
          }
          return responseCode;
      }
  
      protected void onPostExecute(Integer result) {
          if (result == 408 || responseText.equals("Error")
                  || responseText.equals("Response is null")) {
              Toast.makeText(main.getApplicationContext(),
                      "An error has occured, please try again later.",
                      Toast.LENGTH_SHORT).show();
          } else {
              JSONObject jObj;
              try {
                  jObj = new JSONObject(responseText);
                  String folderString = jObj.getString("folder");
  
                  String [] folders = folderString.split(";");    
                  //I need to return folders back to MainMenu Activity
              } catch (Exception e) {
                  e.printStackTrace();
              }
          }
      }
  }
  </code></pre>
  
  <p>My question is how I am supposed to modify so that I am able to read my Array back on my activity with my connections remains intact.</p>