Blackberry Editfield держать курсор на правой стороне - PullRequest
1 голос
/ 26 мая 2011

Я хочу создать поле редактирования, курсор которого находится справа от него.
Чтобы проиллюстрировать, хочу ли я написать «ежевику», результат должен быть таким:

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

editField = new EditField("","",maxChars,EditField.NO_NEWLINE | EditField.NON_SPELLCHECKABLE){
        protected boolean keyChar(char key, int status, int time) {
        editField.setPadding(0, 0, 0, width - (getFont().getAdvance(this.getText())) - 10);
        invalidate();
        return super.keyChar(key, status, time);
    }
};

Ответы [ 2 ]

1 голос
/ 27 мая 2011

Так же, как решение Свати. Я сделал это так:

editField = new EditField("", "", maxChars, EditField.NO_NEWLINE | EditField.NON_SPELLCHECKABLE){
    protected boolean keyChar(char key, int status, int time){
        switch (key){
            case Characters.BACKSPACE:{
                try {
                    text = text.substring(0,text.length()-1);
                    invalidate();
                } catch (IndexOutOfBoundsException e) {}
                return true;
            }
        }
        text = text + key;
        invalidate();
        return true;
    }
    protected void paint(Graphics graphics) {
        graphics.drawText(text,0, 0, DrawStyle.RIGHT, width - 10);
        super.paint(graphics);
    }
};
1 голос
/ 26 мая 2011

К сожалению, вам придется создать свой собственный Manager.Нет простого или очевидного способа сделать это.

Решение с исходным кодом было размещено на форумах BlackBerry.

...