Try using an InputFilter
rather than an OnKeyListener
. This means you don’t have worry about tracking individual key presses and it will also handle things like pasting into a field which would be painful to handle with an OnKeyListener
.
You could have a look at the source of the InputFilter
implementations that come with Android to give you a starting point for writing your own.