2010-10-06 8 views
4

J'ai une table de hachage remplie de données, mais je ne connais pas les clés Comment puis-je faire défiler une clé HashTable dans android? Je suis en train, mais cela ne fonctionne pas:Comment puis-je boucler thorugth une clés HashTable dans Android?

Hashtable output=new Hashtable(); 
output.put("pos1","1"); 
output.put("pos2","2"); 
output.put("pos3","3"); 


ArrayList<String> mykeys=(ArrayList<String>)output.keys(); 
for (int i=0;i< mykeys.size();i++){    
    txt.append("\n"+mykeys.get(i)); 
} 
+0

Si une réponse vous a fourni les informations dont vous avez besoin, s'il vous plaît cliquez sur la coche verte sur le côté gauche de la réponse à l'accepter. Cela permettra de s'assurer que votre question ne reste pas sans réponse pour toujours et est une forme de montrer votre appréciation à la personne qui vous a aidé. –

Répondre

3

Vous devez utiliser Map<String, String> au lieu de Hashtable et la for-each notation pour l'itération chaque fois que possible.

Map<String, String> output = new HashMap<String, String>(); 
output.put("pos1","1"); 
output.put("pos2","2"); 
output.put("pos3","3"); 

for (String key : output.keySet()) { 
    txt.append("\n" + key); 
} 

Votre code actuel ne fonctionne pas parce que Hashtable.keys() retourne un Enumeration, mais vous essayez de le jeter à ArrayList qui est incessible de Enumeration.

8

Utilisez l'énumération pour parcourir toutes les valeurs de la table. C'est probablement ce que vous voulez faire:

Enumeration e = output.keys(); 
while (e.hasMoreElements()) { 
    Integer i = (Integer) e.nextElement(); 
    txt.append("\n"+output.get(i)); 
}