在editedField BlackBerry中显示默认文本

时间:2012-09-04 12:00:36

标签: search blackberry label

当用户输入文本“search:”时,我试图向searchField添加一个默认Label。我试过这个

editedField.setLabel("search:")

但它不起作用,因为当我把字符串搜索时不要擦除。例如,如果我把“a”显示为搜索。你能帮助我吗?非常感谢。

3 个答案:

答案 0 :(得分:3)

基本上,您需要在TextField中提示。

您需要覆盖其paint方法,您可以使用此代码:

protected void paint(Graphics graphics) {
   if (beditfield.getText().length() == 0) 
   {
        graphics.setColor(Color.GRAY);
        graphics.drawText("Search", 0, 0);
   }
   graphics.setColor(Color.WHITE);
   invalidate();
   super.paint(graphics);
}

检查文本字段长度。当它为零时,它会在那里绘制提示。

答案 1 :(得分:1)

覆盖onFocus方法,当字段聚焦时,清除其内容。

要设置文字字段内容,请使用setText方法,而不是setLabel

答案 2 :(得分:1)

试试这个 -

private String test="";
final EditField email_edit = new EditField("", "", 30,BasicEditField.FILTER_DEFAULT) {
    String emptyString = "Search";
    protected void paint(Graphics g) {
        int oldColor = g.getColor();
        try {
             g.setColor(0x959595);
             test = super.getText();
             if ( test == null || test.length() < 1 ) {
                 g.drawText(emptyString, 0, 0); 
             }
             super.paint(g);
        } finally {
             g.setColor(oldColor);
        }
    }
};