2012-05-16 69 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