Android InputTypes and Keyboards
When reading input from an Android user with an EditText, you have a simple way to help that user out by setting the InputType. If you need the user to input a number, for example, you set the number InputType, and the user will automatically key a numeric keypad instead of the full QWERTY. This saves the user a little bit of time and mental energy, and helps avoid mistakes with input.
Beyond just text and numbers, though, are a range of options that produce very subtle changes in the keyboard that Android brings up. Below I explore which options bring up which keypad by default.
First, the standard keyboard, which covers a lot of the input types.


TYPE_TEXT_VARIATION_URI

TYPE_TEXT_VARIATION_EMAIL_ADDRESS
TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS

TYPE_TEXT_VARIATION_SHORT_MESSAGE

TYPE_CLASS_NUMBER
TYPE_NUMBER_FLAG_DECIMAL
TYPE_NUMBER_FLAG_SIGNED

The number password variant reduces the available symbols and focuses just on the numbers.
TYPE_NUMBER_VARIATION_PASSWORD

The phone class adds some symbols common for phone number formatting, plus star & hash.
TYPE_CLASS_PHONE
Emoticon Emoticon