请检查
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());
}
};
这是我的代码帮帮我了吗?
答案 0 :(得分:0)
Kalpana,我检查了你的代码。是的,它没有显示光标。我建议你使用EditField而不是BasicEditField。您也可以为Editfield覆盖这些方法。我试过了,它显示了光标。
答案 1 :(得分:0)
我想我可能已经通过在此自定义BasicEditField之前向管理器添加另一个字段来解决了这个问题。添加一个不做任何事情的字段。像这样:
BitmapField bugFix = new BitmapField(Bitmap.getBitmapResource("empty_image.png"));
myFieldManager.add(bugFix);
myFieldManager.add(demo);
但是,我发现虚拟字段的大小(本例中为BitmapField)很重要。如果你的" empty_image.png"图像只有2px高,只显示光标的前2px。因此,如果您可以处理额外的填充,请添加一个至少大约20px的字段,并显示整个光标。我还应该补充一点,这个bug似乎没有出现在你添加到管理器的任何后续自定义BasicEditFields中......只有第一个。嗯...