Autore Topic: Aggiungere HashMap ad uno spinner.  (Letto 761 volte)

Offline Trotto23

  • Utente junior
  • **
  • Post: 94
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows Vista
Aggiungere HashMap ad uno spinner.
« il: 04 Marzo 2014, 22:34:06 CET »
0
Ciao , come da titolo il mio problema:

Codice (Java): [Seleziona]
public class Utils {

        private static final Map<String, String> map = new HashMap<String, String>();

        static {
                map.put("af", "93");
                map.put("al", "355");
                map.put("dz", "213");
                map.put("ad", "376");
                map.put("ao", "244");
                map.put("aq", "672");
                map.put("ar", "54");
                map.put("am", "374");
                map.put("aw", "297");
                map.put("au", "61");
                map.put("at", "43");
                map.put("az", "994");
                map.put("bh", "973");
                map.put("bd", "880");
                map.put("by", "375");
                map.put("be", "32");
                map.put("bz", "501");
                map.put("bj", "229");
                map.put("bt", "975");
                map.put("bo", "591");
                map.put("ba", "387");
                map.put("bw", "267");
                map.put("br", "55");
                map.put("bn", "673");
                map.put("bg", "359");
                map.put("bf", "226");
                map.put("mm", "95");

}

Ecco, vorrei popolare uno spinner con solo il primo valore , il secondo per ora non mi serve.
Su internet ci sono parecchi esempi ma non riesco a capire bene come fare , li trovo poco chiari.
C'è qualcuno che riesce a spiegarmi bene come fare??

iClaude

  • Visitatore
Re:Aggiungere HashMap ad uno spinner.
« Risposta #1 il: 05 Marzo 2014, 16:21:22 CET »
0
Sulla tua HashMap richiami il metodo keySet e quindi toArray per ottenere un array con le chiavi che puoi usare x popolare lo Spinner...

Offline Trotto23

  • Utente junior
  • **
  • Post: 94
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows Vista
Re:Aggiungere HashMap ad uno spinner.
« Risposta #2 il: 05 Marzo 2014, 16:51:13 CET »
0
Scusa , puoi spiegarti meglio :/

iClaude

  • Visitatore
Re:Aggiungere HashMap ad uno spinner.
« Risposta #3 il: 05 Marzo 2014, 17:41:27 CET »
0
Per popolare lo Spinner ti serve ovviamente un array:
Spinners | Android Developers

Per ricavare un array contenente le chiavi della tua HashMap puoi fare semplicemente così:

Set<String> setChiavi = map.keySet();
String arrChiavi[] = setChiavi.toArray(new String[0]);

Offline Trotto23

  • Utente junior
  • **
  • Post: 94
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows Vista
Re:Aggiungere HashMap ad uno spinner.
« Risposta #4 il: 05 Marzo 2014, 17:46:50 CET »
0
Ok , grazie mille . Ma quel ( new String[0] ) cos'è? Si riferisce alla chiave?

iClaude

  • Visitatore
Re:Aggiungere HashMap ad uno spinner.
« Risposta #5 il: 05 Marzo 2014, 18:27:50 CET »
0
Ok , grazie mille . Ma quel ( new String[0] ) cos'è? Si riferisce alla chiave?

C'è scritto nella documentazione ufficiale: in pratica si fornisce come parametro un array di lunghezza insufficiente e ne viene creato uno al volo di lunghezza adeguata.
Non è molto importante: basta ricopiare il codice così com'è...

Offline Trotto23

  • Utente junior
  • **
  • Post: 94
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows Vista
Re:Aggiungere HashMap ad uno spinner.
« Risposta #6 il: 05 Marzo 2014, 18:34:47 CET »
0
Una cosa di questo genere? Potrebbe andare ?
Codice (Java): [Seleziona]
Map<String, String> map = new HashMap<String, String>();
String[] keys = new String[map.size()];
String[] values = new String[map.size()];
int index = 0;
for (Map.Entry<String, String> mapEntry : map.entrySet()) {
    keys[index] = mapEntry.getKey();
    values[index] = mapEntry.getValue();
    index++;
}

iClaude

  • Visitatore
Re:Aggiungere HashMap ad uno spinner.
« Risposta #7 il: 05 Marzo 2014, 18:39:13 CET »
0
Una cosa di questo genere? Potrebbe andare ?
Codice (Java): [Seleziona]
Map<String, String> map = new HashMap<String, String>();
String[] keys = new String[map.size()];
String[] values = new String[map.size()];
int index = 0;
for (Map.Entry<String, String> mapEntry : map.entrySet()) {
    keys[index] = mapEntry.getKey();
    values[index] = mapEntry.getValue();
    index++;
}

Beh, così ottieni lo stesso risultato con un ciclo fatto "a mano".
Con l'altra soluzione sfrutti i metodi già esistenti di Java, probabilmente più efficienti, ed hai solo 2 righe di codice...
Cmq è la stessa cosa.

Offline Trotto23

  • Utente junior
  • **
  • Post: 94
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows Vista
Re:Aggiungere HashMap ad uno spinner.
« Risposta #8 il: 05 Marzo 2014, 18:42:25 CET »
0
Si ma questo mi salva solo le chiavi oppure anche i valori ?
Se mi salva i valori come posso ricavarli ?

Codice (Java): [Seleziona]
Set<String> setChiavi = map.keySet();
String arrChiavi[] = setChiavi.toArray(new String[0]);

iClaude

  • Visitatore
Re:Aggiungere HashMap ad uno spinner.
« Risposta #9 il: 05 Marzo 2014, 18:53:03 CET »
0
Si ma questo mi salva solo le chiavi oppure anche i valori ?
Se mi salva i valori come posso ricavarli ?

Codice (Java): [Seleziona]
Set<String> setChiavi = map.keySet();
String arrChiavi[] = setChiavi.toArray(new String[0]);

I valori li ricavi semplicemente dall'HashMap di partenza...

Offline Trotto23

  • Utente junior
  • **
  • Post: 94
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows Vista
Re:Aggiungere HashMap ad uno spinner.
« Risposta #10 il: 05 Marzo 2014, 18:58:14 CET »
0
Forse non mi sono spiegato ,l'array arrchiavi contiene tutte  le chiavi e anche tutti gli id ? Se si , come ricavo le chiavi e come gli id ?  Scusa ma non riesco a capire

iClaude

  • Visitatore
Re:Aggiungere HashMap ad uno spinner.
« Risposta #11 il: 05 Marzo 2014, 18:59:32 CET »
+1
Forse non mi sono spiegato ,l'array arrchiavi contiene tutte  le chiavi e anche tutti gli id ? Se si , come ricavo le chiavi e come gli id ?  Scusa ma non riesco a capire

arrChiavi contiene ovviamente solo le chiavi. I valori li ricavi dall'HashMap partendo dalle chiavi...