Проверка CustomItem в j2me поддержки или нет - PullRequest
0 голосов
/ 03 декабря 2010

Проверка CustomItem в поддержке обхода j2me или нет?

Как мне проверить CustomItem в поддержке обхода j2me или нет?

Ответы [ 3 ]

1 голос
/ 05 декабря 2010

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

Вы можете добавить любое количество элементов в форму.Фреймворк управляет следующим для всех Предметов, встроенных в MIDP

  1. Позиционирование и рендеринг всех Предметов (ов)
  2. Прокрутка, когда имеется большее количество элементов, которыеможет помещаться на экране.
  3. Обработка экранных команд и команд Item.

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

Вот где метод traverse () в CustomItem входит. Вы возвращаете false, когда закончите рендеринг и захват данных в CustomItemImpl, и возвращаете true, если хотите сохранить элемент управления в CustomItemImpl.

Позвольте мнеуточни дальше.Предположим, вы реализуете TreeItem.Когда фокус находится на TreeItem, вы хотели бы сделать следующее:

  1. Выберите узел
  2. Разверните или сверните узлы
  3. Перейдите по узлам

Все вышеперечисленные функции являются частью вашей реализации TreeItem.Однако когда вы перемещаете KEY_UP за первый узел дерева или KEY_DOWN за последний узел дерева, вы хотите перейти к TextField / любому другому элементу, смежному с этим TreeItem.Способ, которым вы даете каркасу знать о своем намерении, это

  1. Возвращать false в методе traverse (), когда выбран KEY_UP, когда фокус находится на первом узле дерева
  2. Возвращать false вМетод traverse (), когда выбран KEY_DOWN, когда фокус находится на последнем узле дерева.

Надеюсь, это прояснит ваш запрос.Я настоятельно рекомендую вам взглянуть на этот конкретный пример для более конкретной иллюстрации.

0 голосов
/ 14 декабря 2010

Я нахожу решение. Это работает для меня.

Правильное решение Нахождение обхода CustomItem поддерживается устройством, вызывающим метод "getInteractionModes ()" класса "javax.microedition.lcdui.CustomItem".

Фрагмент кода приведен ниже

int supported_interaction_modes=this.getInteractionModes();
boolean horizontal__interaction,vertical_interaction;
if((supported_interaction_modes&CustomItem.TRAVERSE_HORIZONTAL)!=0)        //Horizontal traverse support
  horizontal_interaction=true;
else
  horizontal_interaction=false;
if((supported_interaction_modes&CustomItem.TRAVERSE_VERTICAL)!=0)
  vertical_interaction=true;        
else
  vertical_interaction=false;

в приведенном выше фрагменте кода «this» относится к объекту класса, производного от «javax.microedition.lcdui.CustomItem»

0 голосов
/ 03 декабря 2010
boolean isCustomItemSupported;
try {
    Class.forName("javax.microedition.lcdui.CustomItem");
    isCustomItemSupported = true;
} catch (Exception e) {
     isCustomItemSupported = false;
}
...