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?
Asked
Active
Viewed 105 times
1
-
Use a `TextWatcher`. – CommonsWare May 15 '20 at 16:02
2 Answers
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
-
1Ok:..... android:digits="aãâáàbcçdeéfghiíjklmnoõôóòpqrstuvwxyzAÃÂÁÀBCÇDEÉFGHIÍJKLMNOÕÔÓÒPQRSTUVWXYZ@-_'+=(){}[]*%$#!?,.;\n: /?\\" – MexiCano May 15 '20 at 16:48