Настраиваемое поле списка с использованием VerticalFieldManager

#blackberry #java-me #blackberry-jde

#ежевика #java-me #blackberry-jde

Вопрос:

Мое требование — создать customlistfieldmanager, расширив verticalfeildmanager, я не могу понять, как это сделать?

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

любая помощь приветствуется!

Комментарии:

1. Привет, Майкл Донохью, я хотел бы услышать, почему у вас низкий рейтинг.

Ответ №1:

Возможно, он попросил вас сделать это из-за самого ограничивающего фактора обычного ListField: вы застряли с одинаковой высотой.

Что вам нужно сделать, так это иметь родительский контейнер, который представляет собой прокрутку VerticalFieldManager. Внутри этого будут пользовательские менеджеры, которые могут обрабатывать те же функции, что и строка в ListField. Он должен принимать фокус и запускать событие при нажатии на него. Вам также необходимо отслеживать, какой это номер элемента, чтобы при нажатии на него он знал, как уведомить всех слушателей о том, какой из них был выбран. Кроме того, родительский VFM должен иметь возможность отслеживать, какая «строка» выбрана в данный момент — в данном случае, какая из них имеет фокус.

Редактировать для комментариев

Если вы добавите a NullField в каждый из них, он может принимать фокус, но на самом деле не будет отображаться как что-либо. Чтобы определить, имеет ли «строка» (менеджер) фокус, вы можете использовать getFieldWithFocus() для этого менеджера, и тот, который не возвращает null , — это выбранная строка. Вероятно, вам также придется выполнить некоторые пользовательские настройки, чтобы выделить выделение

Комментарии:

1. большое спасибо за ваш ответ jprofitt, это было интересно, мое требование — поддерживать динамическое поле списка с миниатюрами, можете ли вы дать мне более подробную информацию, например, какие все методы я могу использовать или какой-нибудь фрагмент..

2. привет, jprofitt, большая часть customverticalfieldmanager выполнена, но я не могу сосредоточиться на пользовательских менеджерах, добавленных в verticalfieldmanager

3. Обновил мой ответ дополнительной информацией

4. Привет, jprofit, если я прав, я должен добавить nullfield в родительский verticalfield manager вместе с customanager и отслеживать количество полей с помощью getfieldcount() и отслеживать нажатое поле с помощью getfieldwithfocus?

5. Я не знаю, понадобится ли он вам в родительском, но если он подходит вашему дизайну, это ничего не повредит. Еще одна вещь, которую вы могли бы сделать, это отслеживать строки NullField и их соответствующий индекс строки, а затем установить FocusChangeListener для них, чтобы VerticalFieldManager вы могли узнать, какая строка имеет фокус, без необходимости много искать.

Ответ №2:

Вам нужно будет динамически добавлять и удалять пользовательские элементы из вашего CustomListFieldManager по мере добавления и удаления элементов из VerticalFieldManager.

Ваш менеджер спросил об этом, потому что он хочет, чтобы вы научились обращаться с пользовательским объектом, чтобы понять, как использовать менеджеры.

Комментарии:

1. большое спасибо за ваш ответ juanmabaiu, это очень помогло, да, мое требование — поддерживать динамическое поле списка с миниатюрой, можете ли вы дать мне более подробную информацию, например, какие все методы я могу использовать или какой-нибудь пример..