1

カーソルが右側にあるエディットフィールドを作成したいと思います。
「ブラックベリー」を書きたいかどうかを説明するために、結果は次のようになります。

<-----------width-of-editfield------>
                                    b
                                   bl
                                  bla
                                 blac
                                black
                               blackb
                              blackbe
                             blackber
                            blackberr
                           blackberry

ありがとう


評判の欠如のナンセンスのために、私は自分の質問に答えることができません。
とにかく、私は簡単な方法を見つけました。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);
    }
};
4

2 に答える 2

1

Manager残念ながら、独自に作成する必要があります。これを行うための簡単または明白な方法はありません。

ソースコードを使用したソリューションがBlackBerryフォーラムに投稿されました。

于 2011-05-26T14:19:32.327 に答える
1

Just like Swati's solution. I did like this:

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);
    }
};
于 2011-05-27T08:17:26.623 に答える