не отображать курсор в обычном BasicEditField bb - PullRequest
3 голосов
/ 05 августа 2011

пожалуйста, проверьте это

BasicEditField demo = ew BasicEditField("", number, 15,
                BasicEditField.FILTER_NUMERIC
                        | BasicEditField.FIELD_LEFT) {
            public int getPreferredWidth() {
                int Width = Graphics.getScreenWidth() - 180;
                return Width;
            }

            public int getPreferredHeight() {
                return 30;
            }

            public void paint(Graphics g) {

                 g.setColor(Color.LINEN);
                 g.fillRect(0, 0, this.getWidth(), this.getHeight());
                 g.setColor(Color.BLUE);
                 g.drawText(getText(), 0, 0);
                super.paint(g);
            }

            protected void layout(int arg0, int arg1) {
                super.layout(getPreferredWidth(), getPreferredHeight());
                super.setExtent(getPreferredWidth(), getPreferredHeight());
            }
        };

это мой код, помогите мне?

Ответы [ 2 ]

0 голосов
/ 09 ноября 2011

Я думаю, что мог бы решить эту проблему, добавив еще одно поле в диспетчер до этого пользовательского BasicEditField.Добавьте поле, которое ничего не делает.Примерно так:

BitmapField bugFix = new BitmapField(Bitmap.getBitmapResource("empty_image.png"));
myFieldManager.add(bugFix);
myFieldManager.add(demo);

Однако я обнаружил, что размер фиктивного поля (в данном случае BitmapField) имеет значение.Если ваше изображение "empty_image.png" имеет высоту всего 2 пикселя, то будут отображаться только верхние 2 пикселя курсора.Итак, если вы можете справиться с дополнительным заполнением, добавьте поле, которое имеет по крайней мере 20 пикселей или около того, и весь курсор должен отображаться.Я также должен добавить, что эта ошибка, похоже, не отображается ни в каких последующих пользовательских BasicEditFields, которые вы добавляете в менеджер ... только в первой.Ммм ...

0 голосов
/ 05 августа 2011

Kalpana, я проверил твой код. Да, это не показывает курсор. Я предлагаю вам использовать EditField вместо BasicEditField. Вы также можете переопределить эти методы для Editfield. Я попробовал, и он показывает курсор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...