Bestimmen des Index eines Elements in einem Formular (J2ME)
Frage
ein Item
gegeben, der mit einem Form
beigefügten wurde, was ist der beste Weg, um herauszufinden, was Index das Element an auf dem Formular ist?
Form.append(Item)
gibt mir den Index seine am Anfang hinzugefügt, aber wenn ich später Elemente einfügen, bevor dass der Index nicht mehr synchron sein wird.
Lösung
Dies war das Beste, was ich tun konnte,:
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;
}
Ich habe nicht wirklich diese getestet, aber es sollte funktionieren, ich nicht nur gefällt, die jedes Element aufzuzählen, aber dann sollte es nie sein, dass viele so denke ich, es ist ok.
Andere Tipps
Nun, es gibt nur zwei Möglichkeiten, dies zu tun, da die API keine indexOf(Item)
Methode haben:
- Sie aktualisieren den Index, den Sie erhalten, wenn Sie einen
Item
hinzufügen. Also, wenn Sie eine andereItem
bevor andere Elemente einfügen, werden Sie die Indizes dieser Elemente zu aktualisieren. Man könnte eine Art Schatten-Array für diese halten, aber das scheint ein bisschen übertrieben. - Sie eine Schleife durch alle Elemente eines Formulars die
size
undget
Methoden derForm
verwenden.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow