在Android中只从用户中获取一个字符

时间:2011-08-10 14:44:23

标签: android char character letter

我希望用户只输入一个字符。我想为每个字母制作按钮,但这没用。你能推荐一些东西来解决这个问题吗?提前谢谢..

2 个答案:

答案 0 :(得分:2)

您可以使用InputFilter.LengthFilter来限制可以在文本字段中输入的字符数,并使用自定义InputFilter来限制允许的字符数;这对我来说听起来最简单。

以下是一个例子:

EditText myTextField = (EditText) findViewById(R.id.my_text);

InputFilter validCharsInputFilter = new InputFilter() {

        @Override
        public CharSequence filter(CharSequence source, int start, int end,
                Spanned dest, int dstart, int dend) {

            // Loop through characters being inserted
            for (int i = start; i < end; i++) {

                // If it is not a letter 
                if (!Character
                        .isLetter(source.charAt(i))) {

                    // Return empty string - as char not allowed
                    return "";
                }
            }

            // If we've got this far, then return null to accept string
            return null;
        }
    };

myTextField.setFilters(
        new InputFilter[] { new InputFilter.LengthFilter(1), validCharsInputFilter });

答案 1 :(得分:0)

您可以在其他解决方案中创建一个字段,并将您的事件处理程序设置为仅接受一个字符。

这非常接近这个问题:Validation on Edit Text