如何使EditField
只接受字母表,并且不应接受任何数字,blackberry.ie中的任何特殊字符,即editfield应该只接受字母字符。
答案 0 :(得分:1)
您可以创建自己的类(即AlphaEditField)并使其扩展EditField。然后覆盖keyDown函数以执行您想要的操作,如下所示:
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;
}
对于任何无法定义的字符,大写和小写函数都将返回false,即...不在字母表中的任何字符。
答案 1 :(得分:1)
我会像这样定义一个TextFilter:
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));
}
});