Контекстно-зависимые меню - Java ME

Я пытаюсь создать контекстно-зависимый список команд. Я установил параметр command.ITEM для всех своих командных кнопок. Но я не мог найти способ обеспечить следующие функции:

У меня есть список значений, например A, B, C. Для A мое командное меню должно содержать 2,4. Когда я перемещаю выделение (курсор) на B, в моем меню команд должно быть 1,3. Когда я перехожу к C, команды должны иметь 2,1 Опять же, когда я возвращаюсь к A, у него должно быть командное меню A (2,4)

Его можно использовать для списка файлов и каталогов:

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

Заранее благодарим за любую помощь, указывающую в правильном направлении.


person Community    schedule 27.04.2009    source источник


Ответы (1)


В спецификации для класса javax.microedition.lcdui.Form (который, как я предполагаю, вы используете) говорится:

«Эти операции перемещения и прокрутки не вызывают видимых для приложения событий»

Также нет метода, вызываемого до отображения меню команд.

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

В зависимости от реализации J2ME на конкретном телефоне, на который вы ориентируетесь, javax.microedition.lcdui.CustomItem.getInteractionModes() может сообщить вам, можете ли вы использовать один CustomItem в своей форме для создания контекстно-зависимого меню.

Единственный верный способ сделать это на всех телефонах - использовать javax.microedition.lcdui.Canvas и повторно реализовать необходимые элементы управления, нарисовав их самостоятельно. Затем вы можете отслеживать, какой из них «выбран», и заполнять собственное меню команд перед его отображением в ответ на низкоуровневые keyPressed() события.

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

person michael aubert    schedule 28.04.2009