Détermination de l'index d'un élément sur un formulaire (J2ME)
Question
Étant donné qu'un élément
a été ajouté à un formulaire
, quel est le meilleur moyen de connaître l'index de cet élément sur le formulaire?
Form.append (Item)
me donnera l'index ajouté initialement à, mais si j'insère ultérieurement des éléments avant cela, l'index sera désynchronisé.
La solution
C’était le meilleur que je pouvais trouver:
private int getItemIndex(Item item, Form form) {
for(int i = 0, size = form.size(); i < size; i++) {
if(form.get(i).equals(item)) {
return i;
}
}
return -1;
}
Je n’ai pas vraiment testé cela, mais cela devrait fonctionner. Je n’aime pas avoir à énumérer chaque élément, mais alors il ne devrait jamais y en avoir autant, alors je suppose que c’est bon.
Autres conseils
Eh bien, il n'y a que deux façons de le faire, car l'API n'a pas de méthode indexOf (Item)
:
- Vous mettez à jour l'index que vous obtenez lorsque vous ajoutez un
Élément
. Ainsi, lorsque vous insérez un autreÉlément
avant d'autres éléments, vous devrez mettre à jour les index de ces éléments. Vous pouvez conserver une sorte de tableau d'ombre pour cela, mais cela semble un peu excessif. - Vous parcourez tous les éléments d'un formulaire à l'aide des méthodes
size
etget
deForm
.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow