title: AsyncTask "Only the original thread that created a view hierarchy can touch its views."
body: <p>I try to modify the Spinner content across the AsyncTaks but I can't and the Logcat is wrote "09-19 16:36:11.189: ERROR/ERROR THE(6078): Only the original thread that created a view hierarchy can touch its views.".</p>
  
  <pre><code>public class GetGroups extends AsyncTask&lt;Void, Void, Void&gt; {
  
      @Override
      protected Void doInBackground(Void... params) {
          Spinner combo = (Spinner) findViewById(R.id.group_combo);
  
          setGroups(combo);
  
          return null;
      }
  
      @Override
      protected void onPostExecute(Void unused)
      {
          super.onPostExecute(unused);
  
  
          Spinner combo = (Spinner) findViewById(R.id.severity_combo);
  
          combo.setSelection(1);
  
          //updateGroups();
          //if (!isFinishing())
          //{
              /*Spinner combo = (Spinner) findViewById(R.id.group_combo);
              ProgressBar pg = (ProgressBar) findViewById(R.id.loading_group);
  
              pg.setVisibility(ProgressBar.GONE);
              combo.setVisibility(Spinner.VISIBLE);
  
              combo.setSelection(0);*/
          //}
      }
  }
  }
  </code></pre>
  
  <p>And the function setGroups is:</p>
  
  <pre><code> public void setGroups(Spinner combo) {
  
      try {
          DefaultHttpClient httpClient = new DefaultHttpClient();
  
          HttpPost httpPost = new HttpPost(this.object.url);
  
          List&lt;NameValuePair&gt; parameters = new ArrayList&lt;NameValuePair&gt;(2);
          parameters.add(new BasicNameValuePair("user", this.object.user));
          parameters.add(new BasicNameValuePair("pass", this.object.password));
          parameters.add(new BasicNameValuePair("op", "get"));
          parameters.add(new BasicNameValuePair("op2", "groups"));
          parameters.add(new BasicNameValuePair("other_mode", "url_encode_separator_|"));
          parameters.add(new BasicNameValuePair("return_type", "csv"));
          parameters.add(new BasicNameValuePair("other", ";"));
  
          UrlEncodedFormEntity entity = new UrlEncodedFormEntity(parameters);
  
          httpPost.setEntity(entity);
  
          HttpResponse response = httpClient.execute(httpPost);
          HttpEntity entityResponse = response.getEntity();
  
          String return_api = this.object.convertStreamToString(entityResponse.getContent());
  
          String[] lines = return_api.split("\n");
  
          ArrayList&lt;String&gt; array = new ArrayList&lt;String&gt;();
  
          for (int i= 0; i &lt; lines.length; i++) {
              String[] groups = lines[i].split(";", 21);
  
              this.pandoraGroups.put(new Integer(groups[0]), groups[1]);
  
              array.add(groups[1]);
          }
  
          ArrayAdapter&lt;String&gt; spinnerArrayAdapter = new ArrayAdapter&lt;String&gt;(this,
              android.R.layout.simple_spinner_item,
              array);
          combo.setAdapter(spinnerArrayAdapter);
      }
      catch (Exception e) {
          Log.e("ERROR THE ", e.getMessage());
  
          return;
      }
  }
  </code></pre>
  
  <p>What is wrong? Thanks.</p>