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.

War es hilfreich?

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:

  1. Sie aktualisieren den Index, den Sie erhalten, wenn Sie einen Item hinzufügen. Also, wenn Sie eine andere Item 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.
  2. Sie eine Schleife durch alle Elemente eines Formulars die size und get Methoden der Form verwenden.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top