Определение индекса элемента в форме (J2ME)

StackOverflow https://stackoverflow.com/questions/128103

  •  02-07-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

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

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

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

Другие советы

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

  1. Вы обновляете индекс, который получаете при добавлении Item.Поэтому, когда вы вставляете другой Item перед другими элементами вам нужно будет обновить индексы этих элементов.Вы могли бы сохранить для этого какой-нибудь теневой массив, но это кажется немного излишним.
  2. Вы перебираете все элементы формы, используя size и get методы Form.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top