Determinación del índice de un artículo en un formulario (J2ME)
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.
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)
:
- Actualiza el índice que obtiene al agregar un
Item
. Entonces, cuando inserte otroItem
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. - Recorre todos los elementos de un formulario utilizando los métodos de
tamaño
yget
deForm
.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow