LWUIT TextArea не перехватывает сенсорные события - PullRequest
2 голосов
/ 07 февраля 2012

Я сделал Container соединение с TextArea и CheckBox.В своем приложении я создаю очень много этих «Containers» и добавляю к каждому TextArea внутри них ActionListener (реализуемый классом).Примерно так:

for(int i = 0 ; i<20;i++){
 MyContainer c = new MyContainer();
 TextArea t = c.getTextArea();
 t.addActionListener(this);
}

Я хочу, чтобы TextArea перехватил событие, и, если оно нажато, поставьте флажок CheckBox отмеченным или не отмеченным.Он отлично работает в устройствах без сенсорного экрана и симуляторах, но в устройствах с сенсорным экраном или эмуляторах TextArea не улавливает событие.Я попытался поставить TextArea в качестве ведущего компонента Container, но он не работает, потому что Container не имеет addActionListener метода.

Ответы [ 2 ]

2 голосов
/ 10 февраля 2012

Если я правильно понимаю вопрос, вы пытаетесь создать составной компонент, собранный из нескольких разных компонентов, чтобы действовать как один компонент.В LWUIT / Codename One это называется Lead Component , прикрепленный пост в основном посвящен редактору ресурсов, но концепции применимы и к ручному кодированию.Просто установите «флажок» в качестве ведущего, и все должно работать.

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

0 голосов
/ 07 февраля 2012

Лучше, если вы derive класс TextArea для метода getTextArea(). Затем в этом классе реализуйте метод pointerReleased: закодируйте в нем обычное действие.

...