web-dev-qa-db-fra.com

Android, commenter un tableau CharSequence de manière dynamique (ne pas initialiser?)

Comment puis-je changer quelque chose comme ça:

CharSequence cs[] = { "foo", "bar" };

à:

CharSequence cs[];

cs.add("foo"); // this is wrong...
cs.add("bar"); // this is wrong...
19
MarcoS

Utilisez un objet List pour gérer les éléments. Lorsque vous avez tous les éléments, convertissez-les en CharSequence. Quelque chose comme ça:

List<String> listItems = new ArrayList<String>();

listItems.add("Item1");
listItems.add("Item2");
listItems.add("Item3");

final CharSequence[] charSequenceItems = listItems.toArray(new CharSequence[listItems.size()]);
80
David Guerrero

Tu es presque là. Vous devez allouer de l'espace pour les entrées, ce qui est automatiquement fait pour vous dans le cas d'initialisation ci-dessus.

CharSequence cs[];

cs = new String[2];

cs[0] = "foo"; 
cs[1] = "bar"; 

En réalité, CharSequence est une interface et ne peut donc pas être créé directement, mais String comme l’une de ses implémentations le peut.

3
Heiko Rupp

Vous pouvez également utiliser List, pour avoir un nombre dynamique de membres dans le tableau (liste :)):

List<CharSequence>  cs = new ArrayList<CharSequence>();

cs.add("foo"); 
cs.add("bar"); 

Si vous voulez utiliser array, vous pouvez faire:

CharSequence cs[];

cs = new String[2];

cs[0] = "foo"; 
cs[1] = "bar"; 
2
MByD

Si vous voulez qu'il soit dynamique, vous devriez penser à une autre structure, puis le convertir en CharSequence quand vous en aurez besoin. Sinon, ce fil peut être utile.

0
Romain Piel

Vous pouvez utiliser ArrayList au lieu de tableaux bruts, car vous devez ajouter des éléments de manière dynamique.

0
Ronnie