在android中为edittext设置输入过滤器

时间:2014-09-28 02:03:27

标签: java android eclipse

我在项目中使用输入过滤器作为edittext。但条件如下:

1)edittext的第一个字符应该只是一个字母 2)从第二个字符开始,它可以是字母,数字,下划线或点

我尝试了以下内容:

 filter_username = new InputFilter() { 
         public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
                boolean keepOriginal = true;
                 sb = new StringBuilder(end - start);
                for (int i = start; i < end; i++) {

                    char c = source.charAt(i);

                    if (isCharAllowed2(c)) // put your condition here
                        sb.append(c);
                    else
                        keepOriginal = false;
                }
                if (keepOriginal)
                    return null;
                else {
                    if (source instanceof Spanned) {
                        SpannableString sp = new SpannableString(sb);
                        TextUtils.copySpansFrom((Spanned) source, start, sb.length(), null, sp, 0);
                        return sp;
                    } else {
                        return sb;
                    }           
                }
            }

            private boolean isCharAllowed2(char c) {
                if(sb.length()==0)
                      return Character.isLetter(c);
                else
                return (Character.isLetterOrDigit(c)||c=='_'||c=='.');

            }

}; 

我将过滤器设置为: txtusername.setFilters(new InputFilter [] {filter_username});

问题是我无法从第二个字符开始输入字母或数字或所需的字符。我如何解决这个问题?

0 个答案:

没有答案