I must be doing something obvious, but I can't figure out what it is. I'm simply trying to insert a character into an Editable:
@Override
public void afterTextChanged(Editable s) {
Log.d(TAG, "inserting space at " + location);
s.insert(location, " ");
Log.d(TAG, "new word: '" + s + "'");
}
But s never changes. The string 's' is long enough, because I print it and it looks good. If I call Editable.clear(), it is cleared, and I can replace multiple characters with Editable.replace(). Ideas?
I found the problem; I set the inputType as "number" and so adding the space silently failed.
To edit an editable with input filters, simply save the current filters, clear them, edit your text, and then restore the filters.
Here is some sample code that worked for me:
@Override
public void afterTextChanged(Editable s) {
InputFilter[] filters = s.getFilters(); // save filters
s.setFilters(new InputFilter[] {}); // clear filters
s.insert(location, " "); // edit text
s.setFilters(filters); // restore filters
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With