2009-10-19 8 views

Répondre

1

Vous pouvez créer votre propre classe (c'est-à-dire AlphaEditField) et l'agrandir. Ensuite, passer outre la fonction de keyDown faire ce que vous voulez, quelque chose comme ceci:

protected boolean keyDown(int keycode, int time) { 
    char ch = net.rim.device.api.ui.Keypad.map(keycode); 
    if(Character.isUpperCase(ch) || Character.isLowerCase(ch)) { 
     return super.keyDown(keycode, time); 
    } 
    return false; 
} 

Les fonctions majuscules et minuscules retourneront faux pour tout caractère qui ne peut pas être défini dans le cas où, alias ... quoi que ce soit pas l'alphabet.

1

Je définirais un Textfilter comme ceci:

myEditField.setFilter(new TextFilter(){ 
    public char convert(char character, int status) { 
     return character; // because you're trying to disallow characters, not convert them. 
    } 
    public boolean validate(char character) { 
     return (Character.isUpperCase(character) || Character.isLowerCase(character)); 
    } 
});