2012-03-04 8 views
5

Hola He creado una actividad que extrae datos del texto en formato json y los muestra en una vista giratoria. Pero estoy un poco confundido con la última parte. ContactList es un tipo de ArrayList, ArrayAdapter no acepta contactList como su arugument. Es Aquí está mi códigoArrayAdapter: Datos Json que se enviarán a spinner

public class RegisterForEventActivity extends Activity { 

     private static String url = "http://10.0.2.2/Contacts.txt"; 
     private static final String TAG_NAME = "name"; 
     private static final String TAG_CONTACTS = "contacts"; 

     JSONArray jsonArray = null; 

     Spinner areaspinner; 

     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.register_layout); 


     // Hashmap for ListView 
      ArrayList<HashMap<String, String>> contactList = new ArrayList<HashMap<String, String>>(); 

       // Creating JSON Parser instance 
       JSONParser jParser = new JSONParser(); 

       // getting JSON string from URL 
       JSONObject json = jParser.getJSONFromUrl(url); 

       try { 
        // Getting Array of Contacts 
        jsonArray = json.getJSONArray(TAG_CONTACTS); 

        final String[] array_spinner = new String[jsonArray.length()]; 

        // looping through All Contacts 
        for(int i = 0; i < jsonArray.length(); i++){ 

         JSONObject c = jsonArray.getJSONObject(i); 

         // Storing each json item in variable 
         String name = c.getString(TAG_NAME); 

         // creating new HashMap 
         HashMap<String, String> map = new HashMap<String, String>(); 

         // adding each child node to HashMap key => value 
         map.put(TAG_NAME, name); 


         // adding HashList to ArrayList 
         contactList.add(map); 

ArrayAdapter<String> adapter = 
           new ArrayAdapter<String> (this, android.R.layout.simple_spinner_item, contactList);  
         adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
         areaspinner.setAdapter(adapter); 
        } 

       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 
     } 
    } 

Respuesta

1

Sí, lo he descubierto!

sp=(Spinner)findViewById(R.id.spinner1); 

    // Hashmap for ListView 


      // Creating JSON Parser instance 
      JSONParser jParser = new JSONParser(); 

      // getting JSON string from URL 
      JSONObject json = jParser.getJSONFromUrl(url); 
      System.out.println("Hello"); 
      try { 
       // Getting Array of Contacts 
       jsonArray = json.getJSONArray(TAG_CONTACTS); 

       final String[] items = new String[jsonArray.length()]; 

       // looping through All Contacts 
       for(int i = 0; i < jsonArray.length(); i++){ 

        JSONObject c = jsonArray.getJSONObject(i); 
        // Storing each json item in variable 

        String name = c.getString(TAG_NAME); 


        items[i]=c.getString(TAG_NAME); 
        System.out.println("Hello events "+items); 
       } 

       ArrayAdapter<String> adapter = 
         new ArrayAdapter<String> (this, android.R.layout.simple_spinner_item, items);  
       adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
       sp.setAdapter(adapter); 

      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
3

Esto se debe a que está pasando una lista de HashMap, y no un conjunto de String. Haga una matriz de String, agregue sus datos de contacto en ella y páselos a la matriz.

lugar de usar este

 ArrayList<HashMap<String, String>> contactList = new ArrayList<HashMap<String, String>>(); 

uso de este

 ArrayList<String> contactList = new ArrayList<String>(); 
+1

Esta es la respuesta correcta. Si desea almacenar información adicional que no sea una cadena simple, necesitará usar un Adaptador diferente. (como una clave y un valor) – Knossos

+0

La respuesta es correcta? pero no muestra el signo aceptado. Sí, en ese caso, tiene que cambiar el tipo de colección y el tipo de adaptador también – Akram

+0

cómo solucionar esto http://stackoverflow.com/questions/29446088/how-to-get-spinner-values-in-textview –

Cuestiones relacionadas