1

I am trying to prevent users from entering numbers into an EditText. Everything else is allowed; just not numbers. Is there any way to do this?

Evian Pringle
  • 45
  • 2
  • 9

2 Answers2

2

This approach excludes the numbers that is defined in blockNumbers vairble.

private EditText etSample ;
private String blockNumbers = "1234567890";


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    etSample = (EditText) findViewById(R.id.etSample);
    etSample.setFilters(new InputFilter[] { filter });

}

private InputFilter filter = new InputFilter() {
    @Override
    public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
        if (source != null && blockNumbers.contains(("" + source))) {
            return "";
        }
        return null;
    }
};
Fidz
  • 89
  • 9
1

Is Easy , use:

android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

Example

<EditText android:id="@+id/edt" android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" android:layout_width="fill_parent" 
android:layout_height="wrap_content" /> 
MexiCano
  • 271
  • 1
  • 11
  • This only accepts alphabets. I need to accept everything except for numbers. This would also not be good for a multi-lingual app which is what I have. – Evian Pringle May 15 '20 at 16:12
  • 1
    Ok:..... android:digits="aãâáàbcçdeéfghiíjklmnoõôóòpqrstuvwxyzAÃÂÁÀBCÇDEÉFGHIÍJKLMNOÕÔÓÒPQRSTUVWXYZ@-_'+=(){}[]*%$#!?,.;\n: /?\\" – MexiCano May 15 '20 at 16:48