Определить событие пробела - PullRequest
1 голос
/ 16 февраля 2012

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

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

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

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

1 Ответ

5 голосов
/ 16 февраля 2012

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

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.

ОБНОВЛЕНИЕ:
Для полей списка вы можете вызвать ListField.getSelectedIndex и ListField.setSelectedIndex, чтобы изменить элементы, но это не плавная прокрутка.Но если вы поместили поле списка в VerticalFieldManager, вы можете изменить прокрутку менеджера, как описано выше.

...