4 votes

Convertir HashMap.keySet() en CharSequence[]?

Je ai une méthode dans une classe client qui rassemble des données à partir d'un serveur, et renvoie une HashMap. Je veux lister les clés dans un dialogue Android. L'API Android nécessite que les données soient sous la forme d'un CharSequence[]. Autant que je sache, il n'y a pas de moyen direct de convertir ces types de données. Quel serait le meilleur moyen d'accomplir cela?

Voici la déclaration et l'initialisation de la hashmap et du keyset:

Map  players = client.listPlayers();
Set player_names = players.keySet();

Et voici le lien vers la documentation sur Dialog Android.

Note: CharSequence, qui peut être casté depuis un Set n'est pas le même que CharSequence[]

Toute aide est appréciée.

-Sean W.

4voto

Matthew Flaschen Points 131723
CharSequence[] nom_joueurs = players.keySet().toArray(new CharSequence[0]);

Cela indique à la méthode le type du tableau sans allouer d'espace pour les éléments. Elle allouera un tableau de la bonne taille pour vous.

Si vous préférez allouer vous-même le vrai tableau:

CharSequence[] nom_joueurs = players.keySet().toArray(new CharSequence[players.size()]);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X