Ежевика вернуться в прежнее положение в ListField - PullRequest
0 голосов
/ 16 октября 2011

В моем приложении я использую список.Этот список может быть обновлен с помощью кнопки обновления списка, которая получает больше данных с сервера.Когда пользователь нажимает кнопку обновления, мое приложение сохраняет последний выбранный элемент в поле memeber -

lastPosition = listField.getSelectedIndex();

. После обновления списка мое приложение использует -

listField.setSelectedIndex(lastPosition);

для установки последнегопозиция.Но ничего не происходит.

Как я могу "переместить" курсор списка, чтобы он указывал на последнюю позицию?Спасибо, Эяль.

                listField.setKeyword("");
            listField.v = userVector;               
            listField.updateList(); 
            listField.getResultList();
            listField.setSelectedIndex(lastPosition);
            listField.setFocus();
            Manager manager = listField.getManager();
            int rowHeight = listField.getRowHeight();
            manager.setVerticalScroll(lastPosition * rowHeight);
            listField.invalidate();

1 Ответ

2 голосов
/ 16 октября 2011

Трудно догадаться, что не так, не видя код, однако первое, что приходит на ум, - это, вероятно, вы не ставите фокус на список сразу после восстановления позиции?Если нет, попробуйте:

listField.setSelectedIndex(lastPosition);
listField.setFocus();
...