In my android application I need to disABLE Spacebar only. But I didn't find a solution for this problem. I need to disable space bar and when user enter space should not work, special characters, letters, digits and all other should work. What I tried is,
etPass.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
String str = s.toString();
if(str.length() > 0 && str.contains(" "))
{
etPass.setError("Space is not allowed");
etPass.setText("");
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
});
But the problem here is once space comes whole text is deleting. I removed
etPass.setText("");
this line, so at that time error message is showing, but at that time user can still able to type space. But what I need is user shouldn't able to type the space.
I tried using the
InputFilter
solution and doesn't work for me because If try to tap backspace, the whole entered text doubles in theEditText
.This solution works for me in
Kotlin
usingTextWatcher
:Just replace this in your code and it should work perfectly,
This version support input from keyboard's suggestions with spaces.
PS: Kotlin version: