Определение индекса элемента в форме (J2ME) - PullRequest
0 голосов
/ 24 сентября 2008

Учитывая Item, который был добавлен к Form, каков наилучший способ узнать, по какому индексу этот элемент находится в форме?

Form.append(Item) даст мне индекс, в котором он изначально был добавлен, но если я добавлю элементы позже, индекс будет не синхронизирован.

Ответы [ 2 ]

1 голос
/ 24 сентября 2008

Это было лучшее, что я мог придумать:

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

Я на самом деле не проверял это, но оно должно работать, мне просто не нравится перечислять каждый элемент, но тогда их никогда не должно быть много, так что я думаю, это нормально.

0 голосов
/ 23 октября 2008

Ну, есть только два способа сделать это, так как у API нет метода indexOf(Item):

  1. Вы обновляете индекс, полученный при добавлении Item. Поэтому, когда вы вставляете еще один Item перед другими элементами, вам придется обновлять индексы этих элементов. Вы могли бы сохранить для этого какой-то массив теней, но это кажется немного излишним.
  2. Вы просматриваете все элементы формы, используя size и get методы Form.
...