如何创建只接受Blackberry文本的EditField?

时间:2009-10-19 09:55:24

标签: blackberry blackberry-editfield

如何使EditField只接受字母表,并且不应接受任何数字,blackberry.ie中的任何特殊字符,即editfield应该只接受字母字符。

2 个答案:

答案 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));
    }
});