0

如何允许文本字段中输入的第一个字母为大写。或者是否可以在文本字段文本更改事件上进行更改。另外我想避免将空格作为第一个字符。(虽然它可以在文本中间使用)

这是用于测试其他参数的文本字段验证代码

    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);

请指导。谢谢

重新编辑:

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

     add(auto);

重新编辑 2:使用下面的代码可以防止输入任何空格(在开始时或之间)。此外,仍然没有验证 Caps 作为第一个字母。请参阅此链接了解我是如何得到以下想法的

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);
4

1 回答 1

1

使用AutoTextEditField而不是TextField与以下标志一起使用:EditField.NO_NEWLINE | Field.EDITABLE | AutoTextEditField.NON_SPELLCHECKABLE.

不要害怕真实价值前面的空格。只需要求trim()最终价值。

于 2012-05-16T13:47:25.687 回答