Контекстные меню - Java ME - PullRequest
2 голосов
/ 28 апреля 2009

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

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

Может использоваться для списка файлов и каталогов:

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

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

1 Ответ

1 голос
/ 28 апреля 2009

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

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

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

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

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

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

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

...