1

ユーザーがプログラムで編集テキストに数字を入力するのを止める方法を知りたいので、これを行うのと同様の効果があります

android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ#$%......" 

調べましedittext.setInputType(InputType.something)たが、ユーザーが数字を入力するのを止める入力タイプが見つかりませんでした。

入力タイプまたは他の方法でこれを行う方法を知っている人はいますか?

4

3 に答える 3

3
InputFilter filter = new InputFilter() {
    @Override
    public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
        String output = "";
        for (int i = start; i < end; i++) {
            if (!Character.isDigit(source.charAt(i))) { 
                    output += source.charAt(i); 
            }
        } 
        return output;
    } 
}; 
edit.setFilters(new InputFilter[]{filter});

edit があなたの EditText であると仮定します

于 2013-02-07T18:06:02.940 に答える
0

pavki_a の答えは完全に機能しましたが、バックスペースと単語の提案にいくつかのバグがありました。追加してそれらを修正しました:

edittext.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);

自動修正が必要な場合、これは問題になる可能性がありますが、私にとっては問題なく機能しました

于 2013-02-08T06:50:34.577 に答える
0

http://developer.android.com/reference/android/widget/TextView.html#attr_android:inputTypeによると、使用できます

number - A numeric only field. Corresponds to TYPE_CLASS_NUMBER | TYPE_NUMBER_VARIATION_NORMAL.

やってみました:

edit.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_NORMAL);
于 2013-02-07T18:09:07.180 に答える