Determinação do índice de um item num formulário (J2ME)
Pergunta
Dado um Item
que foi anexado a um Form
, o que é a melhor maneira de descobrir o que o índice desse item está em no formulário?
Form.append(Item)
vai me dar o índice seu inicialmente adicionados no, mas se eu depois inserir itens antes que o índice vai estar fora de sincronia.
Solução
Este foi o melhor que eu poderia vir acima com:
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;
}
Eu não testei isso, mas deve trabalhar, eu só não gosto de ter de enumerar cada item, mas, em seguida, nunca deve haver que muitos então eu acho que é ok.
Outras dicas
Bem, existem apenas duas maneiras de fazer isso, já que a API não tem um método indexOf(Item)
:
- Você atualizar o índice que você começa quando você adicionar um
Item
. Então, quando você inserir outroItem
antes de outros itens, você terá que atualizar os índices desses itens. Você poderia manter algum tipo de sombra-array para isso, mas que parece um exagero bit. - Você percorrer todos os itens de um formulário usando os métodos
size
eget
deForm
.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow