2012-02-16 3 views
1

Пробел имеет действие по умолчанию для многих полей пользовательского интерфейса: нажмите кнопку buttonfield, выберите/снимите флажок, прокрутите список по вертикали.Обнаружение пробельного события

На моем экране есть поле списка более 20 строк. Когда пользователь попадает в пробел, я хочу, чтобы поле списка прокручивалось.

Например, приложение BlackBerry по умолчанию для календарей, когда мы нажимаем пробел, оно прокрутит вниз. и текст по умолчанию BlackBerry Сообщения, когда мы нажимаем пробел, он будет прокручиваться вниз.

Это свойство по умолчанию? или мне нужно написать код для клавиши пробела?

+1

вам необходимо переопределить метод keyChar. – BBdev

+0

@MaxGontar Hi. Я голосую за ниже ответ и забываю проверить принять ответ. Извини, друг. – RVG

ответ

5

Вы должны создать пользовательский ключ слушателя:

private class CustomKeyListener implements KeyListener { 

    public boolean keyChar(char key, int status, int time) { 
     if(key == Characters.SPACE){ 
      //TODO handle key here 
      //WARNING: this code runs on event thread! 
      return true; 
     } 

     return false; 
    } 

    public boolean keyDown(int keycode, int time) {   
     return false; 
    } 

    public boolean keyRepeat(int keycode, int time) { 
     return false; 
    } 

    public boolean keyStatus(int keycode, int time) { 
     return false; 
    } 

    public boolean keyUp(int keycode, int time) { 
     return false; 
    }  
} 

Затем вызовите Mainscreen.addKeyListener с экземпляром вашего ключевого слушателя в качестве параметра.

Оттуда вы можете сменить менеджера (главный менеджер или вложенный) прокруткой с помощью метода Manager.setVerticalScroll. Если вы хотите увеличить его, вы можете получить текущий вызов прокрутки Manager.getVerticalScroll, а затем добавить фиксированное значение. Если у вас нет вложенного VerticalFieldManager на вашем экране, вы можете попробовать по умолчанию своего экрана, который вы можете получить по телефону Mainscreen.getMainManager.

UPDATE:
Для полей списка, вы можете вызвать ListField.getSelectedIndex и ListField.setSelectedIndex изменить элементы, но это не плавный скроллинг. Но если вы разместили поле списка внутри VerticalFieldManager, вы можете изменить прокрутку менеджера, как описано выше.

Смежные вопросы