0

如何使EditField哪个只接受字母并且它不应该接受任何数字,blackberry.ie 中的任何特殊字符)该编辑字段应该只接受字母字符。

4

2 回答 2

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 以防万一,也就是...任何不在字母表中的字符。

于 2009-10-19T12:24:15.293 回答
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));
    }
});
于 2010-01-28T22:57:37.853 回答