MIDP: получить или отследить текущий элемент - PullRequest
2 голосов
/ 21 ноября 2011

Я добавляю некоторые функции в приложение на основе MIDP, которое требует от меня, чтобы отслеживать, имеет ли фокус Item. Меня действительно интересуют только элементы стиля поля, и мне нужно определить, когда пользователь завершил ввод данных в элемент.

Я знаю, что CustomItem имеет обратный вызов traverse(), но я не могу найти ничего похожего для классов, таких как DateField, TextField и ChoiceGroup.

Я также знаю о Display.setCurrentItem(), но по какой-то странной причине, похоже, нет Display.getCurrentItem() метода.

Реализация всех элементов управления в виде CustomItems на самом деле не вариант, так как это уже существующее приложение, и есть довольно много элементов управления для работы. Я не могу поверить, что никто не сталкивался с этой проблемой раньше, но я искал здесь и Google безрезультатно. Надеюсь, я просто упускаю что-то очевидное в API, но если нет однозначного ответа, тогда приветствуются творческие решения!

1 Ответ

0 голосов
/ 30 ноября 2011

В MIDP 2 lcdui API , единственные элементы стиля поля являются, ну, в общем, интерактивными подклассами Item: TextField, DateField, Gauge.

Для вышеперечисленных элементов наиболее близкое соответствие с тем, о чем вы просите, представляется ItemStateListener (посмотрите API javadocs здесь , если вам интересно).

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

  • Если вы планируете использовать этот API, внимательно проверьте документы, чтобы убедиться, что он действительно дает вам то, что вы хотите - здесь есть некоторые тонкие ограничения.Если оказывается, что вам нужен больший контроль, вы можете использовать низкоуровневый пользовательский интерфейс (Canvas, events) или стороннюю библиотеку, такую ​​как LWUIT, J2ME Polish ...
...