2012-05-16 92 views
0

如何让文本字段中的输入的第一个字母成为caps.Or是否可以更改文本字段的文本更改event.Also我想避免有一个空间作为第一个。性格确认textfield允许upCase作为第一个字母 - 黑莓

这里(虽然它可能在文本中使用)是用于测试其他参数

TextField1 = new TextField("\n Customer Name: ",null) 
    { 
      protected boolean keyChar(char ch, int status, int time) 
      { 
      if (CharacterUtilities.isLetter(ch) || (ch == Characters.BACKSPACE || (ch == Characters.SPACE))) 
      { 
      return super.keyChar(ch, status, time); 
      } 
      return true; 
      } 
     }; 
    add(TextField1); 

请guide.Thanks

重新编辑为文本框验证码:

 AutoTextEditField auto = new AutoTextEditField("Name: ",EditField.NO_NEWLINE | Field.EDITABLE | AutoTextEditField.NON_SPELLCHECKABLE); 

    add(auto); 

Reedit 2: 使用下面的代码可以防止键入任何空格(在开始或之间)。同样,对于Caps,第一个字母还没有被验证。 请参阅本link因为我是如何得到下面的想法

BasicEditField bf = new BasicEditField("BasicEditField: ","", 10,EditField.FILTER_UPPERCASE); 
    class AlphaTextFilter extends TextFilter 
    { 
     public char convert(char c, int status) 
     { 
     if (!validate(c)) 
      return 0; 
      return c; 
     } 

     public boolean validate(char c) 
     { 
     return CharacterUtilities.isLetter(c); 
     } 
    } 
    bf.setFilter(new AlphaTextFilter()); 
    add(bf); 

回答

1

使用AutoTextEditField代替TextField具有以下标志:EditField.NO_NEWLINE | Field.EDITABLE | AutoTextEditField.NON_SPELLCHECKABLE

不要害怕在真正价值面前的空间。只需拨打trim()即可获得最终价值。

+0

请检查我尝试过的reedit。它给出了一个编译错误。trim()方法的用法是什么。如果您可以引用基于我的示例,那么将会很好。 – techie

+1

@techie:修剪会通过放弃editfield文本之前和之后的空格和换行符来为您提供文本。 – Nsr

+0

@Nsr谢谢。是我正确实施autotextedit(在reedit),因为它给了我一些错误。 – techie