style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Setear valores extraidos de un arrayList en un array de String para llenar un combo

Hola gente.

Necesito ayuda en tratar de extraer los valores de un arrayList y setearlos en un array de String para luego asi rellenar un combo.
Espero me puedan ayudar.

Este es el codigo de mi clase, q consume un servicio web del cual extrae los valores (paises)...

 package com.efisat.ejercombopaises;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.Vector;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.preference.ListPreference;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.SpinnerAdapter;
import android.widget.TextView;
import android.widget.Toast;
import com.efisat.ejercombopaises.Pais;
import com.efisat.controlador.Controlador;

public class MainActivity extends Activity implements OnClickListener {
        private Spinner cmbPaises;
        private Button btnEnviar;
        private TextView textResultado;
        public static String[] paises;
        private static Context mContext;
        private int proceso;
        private ProgressDialog dialog_confirmar;
        public static ArrayList<Pais> arrayList_Pais;
        public static String mensaje = "";
        public static final String ACTION_NAME = "efisat";
        public static boolean existeError = false;
        private Controlador ctrlServidor;
        private String countries;

        private final String KEYPAIS = "usuario_pais";
        private static SharedPreferences sp;

        // control general
        public static boolean enProceso = false;
        // proceso control principal
        private ProgressDialog dialog;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);

                dialog = new ProgressDialog(this);
                dialog.setMessage("Descargando...");
                dialog.setTitle("Progreso");
                dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                dialog.setCancelable(false);

                new TareaSegundoPlano().execute();

        }

        public void initialize() {
                cmbPaises = (Spinner) findViewById(R.id.cmbPaises);
                btnEnviar = (Button) findViewById(R.id.btnEnviar);
                textResultado = (TextView) findViewById(R.id.textResultado);
                for (int i = 0; i < arrayList_Pais.size(); i++) {
                       
                }

                ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                                getApplicationContext(), android.R.layout.simple_spinner_item,
                                paises);
                adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                try {
                        cmbPaises.setAdapter(adapter);
                } catch (Exception e) {
                        e.printStackTrace();
                }

                cmbPaises.setOnItemSelectedListener(new OnItemSelectedListener() {
                        @Override
                        public void onItemSelected(AdapterView<?> parent, View v,
                                        int position, long id) {
                                // textResultado.setText("Has seleccionado: " +
                                // paises[position]);
                                // countries = paises[position];
                        }

                        @Override
                        public void onNothingSelected(AdapterView<?> arg0) {
                                textResultado.setText("Ningún dato seleccionado");
                        }
                });
                btnEnviar.setOnClickListener(this);
        }

        private int cargarRecursoPais() {
                @SuppressWarnings("rawtypes")
                Vector nombrePais;
                @SuppressWarnings("rawtypes")
                Vector contenidoPais;

                nombrePais = new Vector();
                contenidoPais = new Vector();

                String resultadoPais = "";

                nombrePais.addElement("funcion");
                contenidoPais.addElement("Paises");

                resultadoPais = ctrlServidor.comunicacionConServidor(nombrePais,
                                contenidoPais);

                int proceso = ProcesaRecursos.procesarRecurso(resultadoPais,
                                ProcesaRecursos.PAIS, mContext);
                return proceso;
        }

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
                getMenuInflater().inflate(R.menu.main, menu);
                return true;
        }

        @Override
        public void onClick(View v) {
                switch (v.getId()) {
                case R.id.btnEnviar:
                        Intent intent = new Intent(getBaseContext(), Resultado.class);
                        intent.putExtra("PAISES", proceso);
                        startActivity(intent);
                        break;
                }
        }

        // Clase interna que extiende de AsyncTask
        public class TareaSegundoPlano extends AsyncTask<Void, Void, Void> {
                // Método que se ejecutará antes de la tarea en segundo plano,
                // normalmente utilizado para iniciar el entorno gráfico
                protected void onPreExecute() {
                        dialog.setProgress(0);
                        dialog.setMax(100);
                        // Mostramos el diálogo antes de comenzar
                        // barraProgreso.setProgress(0);//Ponemos la barra de progreso a 0
                        // barraProgreso.setMax(60);//El máximo de la barra de progreso son
                        // 60, de los 60 segundo que va a durar la tarea en segundo plano.
                        dialog.show();
                }

                // Este método se ejecutará después y será el que ejecute el código en
                // segundo plano
                @Override
                protected Void doInBackground(Void... params) {
                        try {
                                Thread.sleep(2000);
                        } catch (InterruptedException e) {
                                e.printStackTrace();
                        }
                        int proceso;
                        proceso = cargarRecursoPais();
                        if (proceso == 0) {

                        }
                        // Al llegar aquí, no devolvemos nada y acaba la
                        // tarea
                        // en segundo plano y se llama al método
                        // onPostExecute().
                        return null;
                }

                protected void onProgressUpdate(Void... values) {
                        // barraProgreso.setProgress(progreso);// Actualizamos la barra de
                        // progreso con los segundos que vayan.

                }

                protected void onPostExecute(Void result) {// A este método se le llama
                        // cada vez que termine la
                        // tarea en segundo plano.
                        initialize();
                        Toast.makeText(MainActivity.this, "Tarea finalizada",
                                        Toast.LENGTH_LONG).show();// Nos muestra una notificación
                                                                                                // informando de que la tarea en
                                                                                                // segundo plano ha finalizado
                        try {
                                dialog.dismiss();
                        } catch (Exception e) {
                                e.printStackTrace();
                        }
                }
        }
}

Saludos

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de beto.bateria

Puedes experimentar con

Puedes experimentar con esto:

a) A tu clase Pais agrega un metodo parecido a:

public String toString(){
return name;
}

b) Crea un ArrayAdapter con un ArrayList (O cualquier lista que herede de collection) del conjunto de objetos Pais.
http://developer.android.com/reference/android/widget/ArrayAdapter.html
http://developer.android.com/reference/java/util/Collection.html

c) Agregalo a tu combo.

d) verifica que funcione

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">