2
street = (EditText) findViewById(R.id.street);
InputFilter filter = new InputFilter() {
    public CharSequence filter(CharSequence source, int start, int end,Spanned dest, int dstart, int dend) { 
        for (int i = start; i < end; i++) { 
             if (!Character.isLetterOrDigit(source.charAt(i)) || !Character.isSpaceChar(source.charAt(i))) { 
                 return "";     
             }     
        }
        return null;   
    }  
};
street.setFilters(new InputFilter[] { filter });

私の編集テキストは、仮想キーボードで文字と数字をフィルタリングできますが、スペース文字を取得できません.. plz help

4

3 に答える 3

3

'||'の代わりに '&&'に置き換えて、答えを得ました。

于 2010-12-20T08:08:30.343 に答える
0

この条件を使用

for (int i = start; i < end; i++) { 
    if (!Character.isLetterOrDigit(source.charAt(i))) {
        if (!Character.isSpaceChar(source.charAt(i)))
            return "";
    }
}
于 2016-02-06T16:27:55.933 に答える
0
!Character.isLetterOrDigit(source.charAt(i)) || Character.isSpaceChar(source.charAt(i))

空白文字が不要で、数字または文字のみが必要であると仮定して、必要なコードです。

于 2012-03-21T17:58:47.330 に答える