Pregunta

Dado un Item que se ha agregado a un Form , ¿cuál es la mejor manera de averiguar en qué índice se encuentra ese elemento en el Formulario?

Form.append (Item) me dará el índice en el que se agregó inicialmente, pero si luego inserto elementos antes de que el índice no esté sincronizado.

¿Fue útil?

Solución

Esto fue lo mejor que pude encontrar:

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;
}

En realidad no he probado esto, pero debería funcionar, simplemente no me gusta tener que enumerar cada elemento, pero nunca debería haber tantos, así que supongo que está bien.

Otros consejos

Bueno, hay solo dos formas de hacerlo, ya que la API no tiene un método indexOf (Item) :

  1. Actualiza el índice que obtiene al agregar un Item . Entonces, cuando inserte otro Item antes de otros artículos, deberá actualizar los índices de esos artículos. Puedes mantener algún tipo de sombra para esto, pero eso parece un poco excesivo.
  2. Recorre todos los elementos de un formulario utilizando los métodos de tamaño y get de Form .
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top