#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, это очень помогло, да, мое требование — поддерживать динамическое поле списка с миниатюрой, можете ли вы дать мне более подробную информацию, например, какие все методы я могу использовать или какой-нибудь пример..