2008-09-24 6 views
0

Étant donné un Item qui a été ajouté à un Form, quel est le meilleur moyen de savoir à quel index se trouve cet élément sur le formulaire?Détermination de l'index d'un élément sur un formulaire (J2ME)

Form.append(Item) me donnera l'index son initialement ajouté à, mais si j'insère plus tard des éléments avant que l'index sera désynchronisé.

Répondre

1

C'était le meilleur que je pouvais venir avec:

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 ne l'ai pas testé ce fait, mais il devrait fonctionner, je n'aime pas avoir à énumérer tous les éléments mais il ne faut jamais que beaucoup, donc je suppose que c'est ok.

0

Eh bien, il y a juste deux façons de le faire, puisque l'API ne possède pas de méthode indexOf(Item):

  1. Vous mettez à jour l'index que vous obtenez lorsque vous ajoutez un Item. Ainsi, lorsque vous insérez un autre Item avant d'autres éléments, vous devez mettre à jour les indices de ces éléments. Vous pouvez garder une sorte de tableau d'ombre pour cela, mais cela semble un peu exagéré.
  2. Vous parcourez tous les éléments d'un formulaire en utilisant les méthodes size et get de Form.
Questions connexes