Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Constants](https://developer.android.com/reference/android/text/InputType#constants)

# InputType

*** ** * ** ***


`
public


interface
InputType
`


`


`

|---|
| android.text.InputType |

|---|
| Known indirect subclasses [EditorInfo](https://developer.android.com/reference/android/view/inputmethod/EditorInfo) |---|---| | [EditorInfo](https://developer.android.com/reference/android/view/inputmethod/EditorInfo) | An EditorInfo describes several attributes of a text editing object that an input method is communicating with (typically an EditText), most importantly the type of text content it contains and the current cursor position. | |

<br />

*** ** * ** ***

Bit definitions for an integer defining the basic content type of text
held in an `https://developer.android.com/reference/android/text/Editable` object. Supported classes may be combined
with variations and flags to indicate desired behaviors.

### Examples

A password field with the password visible to the user:
:   inputType = TYPE_CLASS_TEXT \|
    TYPE_TEXT_VARIATION_VISIBLE_PASSWORD

A multi-line postal address with automatic capitalization:
:   inputType = TYPE_CLASS_TEXT \|
    TYPE_TEXT_VARIATION_POSTAL_ADDRESS \|
    TYPE_TEXT_FLAG_MULTI_LINE

A time field:
:   inputType = TYPE_CLASS_DATETIME \|
    TYPE_DATETIME_VARIATION_TIME

<br />

## Summary

| ### Constants ||
|---|---|
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_DATETIME` Class for dates and times. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_NUMBER` Class for numeric text. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_PHONE` Class for a phone number. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT` Class for normal text. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_DATETIME_VARIATION_DATE` Default variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_DATETIME`: allows entering only a date. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_DATETIME_VARIATION_NORMAL` Default variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_DATETIME`: allows entering both a date and time. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_DATETIME_VARIATION_TIME` Default variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_DATETIME`: allows entering only a time. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_MASK_CLASS` Mask of bits that determine the overall class of text being given. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_MASK_FLAGS` Mask of bits that provide addition bit flags of options. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_MASK_VARIATION` Mask of bits that determine the variation of the base content class. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_NULL` Special content type for when no explicit type has been specified. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_NUMBER_FLAG_DECIMAL` Flag of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_NUMBER`: the number is decimal, allowing a decimal point to provide fractional values. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_NUMBER_FLAG_SIGNED` Flag of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_NUMBER`: the number is signed, allowing a positive or negative sign at the start. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_NUMBER_VARIATION_NORMAL` Default variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_NUMBER`: plain normal numeric text. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_NUMBER_VARIATION_PASSWORD` Variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_NUMBER`: entering a numeric password. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_FLAG_AUTO_COMPLETE` Flag for `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: the text editor (which means the application) is performing auto-completion of the text being entered based on its own semantics, which it will present to the user as they type. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_FLAG_AUTO_CORRECT` Flag for `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: the user is entering free-form text that should have auto-correction applied to it. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_FLAG_CAP_CHARACTERS` Flag for `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: capitalize all characters. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_FLAG_CAP_SENTENCES` Flag for `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: capitalize the first character of each sentence. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_FLAG_CAP_WORDS` Flag for `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: capitalize the first character of every word. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_FLAG_ENABLE_TEXT_CONVERSION_SUGGESTIONS` Flag for `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: Let the IME know the text conversion suggestions are required by the application. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_FLAG_ENABLE_TEXT_SUGGESTION_SELECTED` Flag for `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: Let the IME know that conversion candidate selection information is requested by the application. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_FLAG_IME_MULTI_LINE` Flag for `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: the regular text view associated with this should not be multi-line, but when a fullscreen input method is providing text it should use multiple lines if it can. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_FLAG_MULTI_LINE` Flag for `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: multiple lines of text can be entered into the field. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_FLAG_NO_SUGGESTIONS` Flag for `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: the input method does not need to display any dictionary-based candidates. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_VARIATION_EMAIL_ADDRESS` Variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: entering an e-mail address. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_VARIATION_EMAIL_SUBJECT` Variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: entering the subject line of an e-mail. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_VARIATION_FILTER` Variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: entering text to filter contents of a list etc. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_VARIATION_LONG_MESSAGE` Variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: entering the content of a long, possibly formal message such as the body of an e-mail. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_VARIATION_NORMAL` Default variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: plain old normal text. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_VARIATION_PASSWORD` Variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: entering a password. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_VARIATION_PERSON_NAME` Variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: entering the name of a person. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_VARIATION_PHONETIC` Variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: entering text for phonetic pronunciation, such as a phonetic name field in contacts. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_VARIATION_POSTAL_ADDRESS` Variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: entering a postal mailing address. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_VARIATION_SHORT_MESSAGE` Variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: entering a short, possibly informal message such as an instant message or a text message. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_VARIATION_URI` Variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: entering a URI. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_VARIATION_VISIBLE_PASSWORD` Variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: entering a password, which should be visible to the user. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_VARIATION_WEB_EDIT_TEXT` Variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: entering text inside of a web form. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS` Variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: entering e-mail address inside of a web form. |
| `int` | `https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_VARIATION_WEB_PASSWORD` Variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: entering password inside of a web form. |

## Constants

### TYPE_CLASS_DATETIME

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_CLASS_DATETIME
```

Class for dates and times. It supports the
following variations:
`https://developer.android.com/reference/android/text/InputType#TYPE_DATETIME_VARIATION_NORMAL`
`https://developer.android.com/reference/android/text/InputType#TYPE_DATETIME_VARIATION_DATE`, and
`https://developer.android.com/reference/android/text/InputType#TYPE_DATETIME_VARIATION_TIME`.

<br />

Constant Value:

4
(0x00000004)


### TYPE_CLASS_NUMBER

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_CLASS_NUMBER
```

Class for numeric text. This class supports the following flags:
`https://developer.android.com/reference/android/text/InputType#TYPE_NUMBER_FLAG_SIGNED` and
`https://developer.android.com/reference/android/text/InputType#TYPE_NUMBER_FLAG_DECIMAL`. It also supports the following
variations: `https://developer.android.com/reference/android/text/InputType#TYPE_NUMBER_VARIATION_NORMAL` and
`https://developer.android.com/reference/android/text/InputType#TYPE_NUMBER_VARIATION_PASSWORD`.

IME authors: If you do not recognize
the variation, normal should be assumed.

<br />

<br />

Constant Value:

2
(0x00000002)


### TYPE_CLASS_PHONE

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_CLASS_PHONE
```

Class for a phone number. This class currently supports no variations
or flags.

<br />

Constant Value:

3
(0x00000003)


### TYPE_CLASS_TEXT

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_CLASS_TEXT
```

Class for normal text. This class supports the following flags (only
one of which should be set):
`https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_FLAG_CAP_CHARACTERS`,
`https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_FLAG_CAP_WORDS`, and.
`https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_FLAG_CAP_SENTENCES`. It also supports the
following variations:
`https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_VARIATION_NORMAL`, and
`https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_VARIATION_URI`. If you do not recognize the
variation, normal should be assumed.

<br />

Constant Value:

1
(0x00000001)


### TYPE_DATETIME_VARIATION_DATE

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_DATETIME_VARIATION_DATE
```

Default variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_DATETIME`: allows entering
only a date.

<br />

Constant Value:

16
(0x00000010)


### TYPE_DATETIME_VARIATION_NORMAL

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_DATETIME_VARIATION_NORMAL
```

Default variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_DATETIME`: allows entering
both a date and time.

<br />

Constant Value:

0
(0x00000000)


### TYPE_DATETIME_VARIATION_TIME

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_DATETIME_VARIATION_TIME
```

Default variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_DATETIME`: allows entering
only a time.

<br />

Constant Value:

32
(0x00000020)


### TYPE_MASK_CLASS

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_MASK_CLASS
```

Mask of bits that determine the overall class
of text being given. Currently supported classes are:
`https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`, `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_NUMBER`,
`https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_PHONE`, `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_DATETIME`.

IME authors: If the class is not one you
understand, assume `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT` with NO variation
or flags.

<br />

<br />

Constant Value:

15
(0x0000000f)


### TYPE_MASK_FLAGS

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_MASK_FLAGS
```

Mask of bits that provide addition bit flags
of options.

<br />

Constant Value:

16773120
(0x00fff000)


### TYPE_MASK_VARIATION

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_MASK_VARIATION
```

Mask of bits that determine the variation of
the base content class.

<br />

Constant Value:

4080
(0x00000ff0)


### TYPE_NULL

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_NULL
```

Special content type for when no explicit type has been specified.
This should be interpreted to mean that the target input connection
is not rich, it can not process and show things like candidate text nor
retrieve the current text, so the input method will need to run in a
limited "generate key events" mode, if it supports it. Note that some
input methods may not support it, for example a voice-based input
method will likely not be able to generate key events even if this
flag is set.

<br />

Constant Value:

0
(0x00000000)


### TYPE_NUMBER_FLAG_DECIMAL

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_NUMBER_FLAG_DECIMAL
```

Flag of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_NUMBER`: the number is decimal, allowing
a decimal point to provide fractional values.

<br />

Constant Value:

8192
(0x00002000)


### TYPE_NUMBER_FLAG_SIGNED

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_NUMBER_FLAG_SIGNED
```

Flag of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_NUMBER`: the number is signed, allowing
a positive or negative sign at the start.

<br />

Constant Value:

4096
(0x00001000)


### TYPE_NUMBER_VARIATION_NORMAL

Added in [API level 11](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_NUMBER_VARIATION_NORMAL
```

Default variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_NUMBER`: plain normal
numeric text. This was added in
`https://developer.android.com/reference/android/os/Build.VERSION_CODES#HONEYCOMB`. An IME must target
this API version or later to see this input type; if it doesn't, a request
for this type will be dropped when passed through
`https://developer.android.com/reference/android/view/inputmethod/EditorInfo#makeCompatible(int)`.

<br />

Constant Value:

0
(0x00000000)


### TYPE_NUMBER_VARIATION_PASSWORD

Added in [API level 11](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_NUMBER_VARIATION_PASSWORD
```

Variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_NUMBER`: entering a numeric password.
This was added in `https://developer.android.com/reference/android/os/Build.VERSION_CODES#HONEYCOMB`. An
IME must target this API version or later to see this input type; if it
doesn't, a request for this type will be dropped when passed
through `https://developer.android.com/reference/android/view/inputmethod/EditorInfo#makeCompatible(int)`.

<br />

Constant Value:

16
(0x00000010)


### TYPE_TEXT_FLAG_AUTO_COMPLETE

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_TEXT_FLAG_AUTO_COMPLETE
```

Flag for `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: the text editor (which means
the application) is performing auto-completion of the text being entered
based on its own semantics, which it will present to the user as they type.
This generally means that the input method should not be showing
candidates itself, but can expect the editor to supply its own
completions/candidates from
`https://developer.android.com/reference/android/view/inputmethod/InputMethodSession#displayCompletions(android.view.inputmethod.CompletionInfo[])` as a result of the editor calling
`https://developer.android.com/reference/android/view/inputmethod/InputMethodManager#displayCompletions(android.view.View,%20android.view.inputmethod.CompletionInfo[])`.
Note the contrast with `https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_FLAG_AUTO_CORRECT` and
`https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_FLAG_NO_SUGGESTIONS`:
`TYPE_TEXT_FLAG_AUTO_COMPLETE` means the editor should show an
interface for displaying suggestions, but instead of supplying its own
it will rely on the Editor to pass completions/corrections.

<br />

Constant Value:

65536
(0x00010000)


### TYPE_TEXT_FLAG_AUTO_CORRECT

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_TEXT_FLAG_AUTO_CORRECT
```

Flag for `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: the user is entering free-form
text that should have auto-correction applied to it. Without this flag,
the IME will not try to correct typos. You should always set this flag
unless you really expect users to type non-words in this field, for
example to choose a name for a character in a game.
Contrast this with `https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_FLAG_AUTO_COMPLETE` and
`https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_FLAG_NO_SUGGESTIONS`:
`TYPE_TEXT_FLAG_AUTO_CORRECT` means that the IME will try to
auto-correct typos as the user is typing, but does not define whether
the IME offers an interface to show suggestions.

<br />

Constant Value:

32768
(0x00008000)


### TYPE_TEXT_FLAG_CAP_CHARACTERS

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_TEXT_FLAG_CAP_CHARACTERS
```

Flag for `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: capitalize all characters. Overrides
`https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_FLAG_CAP_WORDS` and
`https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_FLAG_CAP_SENTENCES`. This value is explicitly defined
to be the same as `https://developer.android.com/reference/android/text/TextUtils#CAP_MODE_CHARACTERS`. Of course,
this only affects languages where there are upper-case and lower-case letters.

<br />

Constant Value:

4096
(0x00001000)


### TYPE_TEXT_FLAG_CAP_SENTENCES

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_TEXT_FLAG_CAP_SENTENCES
```

Flag for `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: capitalize the first character of
each sentence. This value is explicitly defined
to be the same as `https://developer.android.com/reference/android/text/TextUtils#CAP_MODE_SENTENCES`. For example
in English it means to capitalize after a period and a space (note that other
languages may have different characters for period, or not use spaces,
or use different grammatical rules). Of course,
this only affects languages where there are upper-case and lower-case letters.

<br />

Constant Value:

16384
(0x00004000)


### TYPE_TEXT_FLAG_CAP_WORDS

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_TEXT_FLAG_CAP_WORDS
```

Flag for `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: capitalize the first character of
every word. Overrides `https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_FLAG_CAP_SENTENCES`. This
value is explicitly defined
to be the same as `https://developer.android.com/reference/android/text/TextUtils#CAP_MODE_WORDS`. Of course,
this only affects languages where there are upper-case and lower-case letters.

<br />

Constant Value:

8192
(0x00002000)


### TYPE_TEXT_FLAG_ENABLE_TEXT_CONVERSION_SUGGESTIONS

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_TEXT_FLAG_ENABLE_TEXT_CONVERSION_SUGGESTIONS
```

Flag for `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: Let the IME know the text conversion suggestions are
required by the application. Text conversion suggestion is for the transliteration languages
which has pronunciation characters and target characters. When the user is typing the
pronunciation charactes, the IME could provide the possible target characters to the user.
When this flag is set, the IME should insert the text conversion suggestions through
`https://developer.android.com/reference/android/view/inputmethod/TextAttribute.Builder#setTextConversionSuggestions(java.util.List<java.lang.String>)` and
the `https://developer.android.com/reference/android/view/inputmethod/TextAttribute` with initialized with the text conversion suggestions is provided
by the IME to the application. To receive the additional information, the application needs
to implement `https://developer.android.com/reference/android/view/inputmethod/InputConnection#setComposingText(java.lang.CharSequence,%20int,%20android.view.inputmethod.TextAttribute)`,
`https://developer.android.com/reference/android/view/inputmethod/InputConnection#setComposingRegion(int,%20int,%20android.view.inputmethod.TextAttribute)`, and
`https://developer.android.com/reference/android/view/inputmethod/InputConnection#commitText(java.lang.CharSequence,%20int,%20android.view.inputmethod.TextAttribute)`.

<br />

Constant Value:

1048576
(0x00100000)


### TYPE_TEXT_FLAG_ENABLE_TEXT_SUGGESTION_SELECTED

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_TEXT_FLAG_ENABLE_TEXT_SUGGESTION_SELECTED
```

Flag for `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: Let the IME know that conversion candidate
selection information is requested by the application.
Text conversion suggestion is for the transliteration languages, which have the notions of
pronunciation and target characters. When the user actively selects a candidate
from the conversion suggestions, notifying when candidate selection is occurring helps
assistive technologies generate more effective feedback.
When this flag is set, and there is an active selected suggestion, the IME should set that
a conversion suggestion is selected `https://developer.android.com/` when
initializing the `https://developer.android.com/reference/android/view/inputmethod/TextAttribute`.
To receive this information, the application should implement
`https://developer.android.com/reference/android/view/inputmethod/InputConnection#setComposingText(java.lang.CharSequence,%20int,%20android.view.inputmethod.TextAttribute)`,
`https://developer.android.com/reference/android/view/inputmethod/InputConnection#setComposingRegion(int,%20int,%20android.view.inputmethod.TextAttribute)`, and
`https://developer.android.com/reference/android/view/inputmethod/InputConnection#commitText(java.lang.CharSequence,%20int,%20android.view.inputmethod.TextAttribute)`.

<br />

Constant Value:

2097152
(0x00200000)


### TYPE_TEXT_FLAG_IME_MULTI_LINE

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_TEXT_FLAG_IME_MULTI_LINE
```

Flag for `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: the regular text view associated
with this should not be multi-line, but when a fullscreen input method
is providing text it should use multiple lines if it can.

<br />

Constant Value:

262144
(0x00040000)


### TYPE_TEXT_FLAG_MULTI_LINE

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_TEXT_FLAG_MULTI_LINE
```

Flag for `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: multiple lines of text can be
entered into the field. If this flag is not set, the text field
will be constrained to a single line. The IME may also choose not to
display an enter key when this flag is not set, as there should be no
need to create new lines.

<br />

Constant Value:

131072
(0x00020000)


### TYPE_TEXT_FLAG_NO_SUGGESTIONS

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_TEXT_FLAG_NO_SUGGESTIONS
```

Flag for `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: the input method does not need to
display any dictionary-based candidates. This is useful for text views that
do not contain words from the language and do not benefit from any
dictionary-based completions or corrections. It overrides the
`https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_FLAG_AUTO_CORRECT` value when set.
Please avoid using this unless you are certain this is what you want.
Many input methods need suggestions to work well, for example the ones
based on gesture typing. Consider clearing
`https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_FLAG_AUTO_CORRECT` instead if you just do not
want the IME to correct typos.
Note the contrast with `https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_FLAG_AUTO_CORRECT` and
`https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_FLAG_AUTO_COMPLETE`:
`TYPE_TEXT_FLAG_NO_SUGGESTIONS` means the IME does not need to
show an interface to display suggestions. Most IMEs will also take this to
mean they do not need to try to auto-correct what the user is typing.

<br />

Constant Value:

524288
(0x00080000)


### TYPE_TEXT_VARIATION_EMAIL_ADDRESS

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_TEXT_VARIATION_EMAIL_ADDRESS
```

Variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: entering an e-mail address.

<br />

Constant Value:

32
(0x00000020)


### TYPE_TEXT_VARIATION_EMAIL_SUBJECT

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_TEXT_VARIATION_EMAIL_SUBJECT
```

Variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: entering the subject line of
an e-mail.

<br />

Constant Value:

48
(0x00000030)


### TYPE_TEXT_VARIATION_FILTER

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_TEXT_VARIATION_FILTER
```

Variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: entering text to filter contents
of a list etc.

<br />

Constant Value:

176
(0x000000b0)


### TYPE_TEXT_VARIATION_LONG_MESSAGE

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_TEXT_VARIATION_LONG_MESSAGE
```

Variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: entering the content of a long, possibly
formal message such as the body of an e-mail.

<br />

Constant Value:

80
(0x00000050)


### TYPE_TEXT_VARIATION_NORMAL

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_TEXT_VARIATION_NORMAL
```

Default variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: plain old normal text.

<br />

Constant Value:

0
(0x00000000)


### TYPE_TEXT_VARIATION_PASSWORD

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_TEXT_VARIATION_PASSWORD
```

Variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: entering a password.

<br />

Constant Value:

128
(0x00000080)


### TYPE_TEXT_VARIATION_PERSON_NAME

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_TEXT_VARIATION_PERSON_NAME
```

Variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: entering the name of a person.

<br />

Constant Value:

96
(0x00000060)


### TYPE_TEXT_VARIATION_PHONETIC

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_TEXT_VARIATION_PHONETIC
```

Variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: entering text for phonetic
pronunciation, such as a phonetic name field in contacts. This is mostly
useful for languages where one spelling may have several phonetic
readings, like Japanese.

<br />

Constant Value:

192
(0x000000c0)


### TYPE_TEXT_VARIATION_POSTAL_ADDRESS

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_TEXT_VARIATION_POSTAL_ADDRESS
```

Variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: entering a postal mailing address.

<br />

Constant Value:

112
(0x00000070)


### TYPE_TEXT_VARIATION_SHORT_MESSAGE

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_TEXT_VARIATION_SHORT_MESSAGE
```

Variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: entering a short, possibly informal
message such as an instant message or a text message.

<br />

Constant Value:

64
(0x00000040)


### TYPE_TEXT_VARIATION_URI

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_TEXT_VARIATION_URI
```

Variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: entering a URI.

<br />

Constant Value:

16
(0x00000010)


### TYPE_TEXT_VARIATION_VISIBLE_PASSWORD

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
```

Variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: entering a password, which should
be visible to the user.

<br />

Constant Value:

144
(0x00000090)


### TYPE_TEXT_VARIATION_WEB_EDIT_TEXT

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_TEXT_VARIATION_WEB_EDIT_TEXT
```

Variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: entering text inside of a web form.

<br />

Constant Value:

160
(0x000000a0)


### TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS

Added in [API level 11](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS
```

Variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: entering e-mail address inside
of a web form. This was added in
`https://developer.android.com/reference/android/os/Build.VERSION_CODES#HONEYCOMB`. An IME must target
this API version or later to see this input type; if it doesn't, a request
for this type will be seen as `https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_VARIATION_EMAIL_ADDRESS`
when passed through `https://developer.android.com/reference/android/view/inputmethod/EditorInfo#makeCompatible(int)`.

<br />

Constant Value:

208
(0x000000d0)


### TYPE_TEXT_VARIATION_WEB_PASSWORD

Added in [API level 11](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_TEXT_VARIATION_WEB_PASSWORD
```

Variation of `https://developer.android.com/reference/android/text/InputType#TYPE_CLASS_TEXT`: entering password inside
of a web form. This was added in
`https://developer.android.com/reference/android/os/Build.VERSION_CODES#HONEYCOMB`. An IME must target
this API version or later to see this input type; if it doesn't, a request
for this type will be seen as `https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_VARIATION_PASSWORD`
when passed through `https://developer.android.com/reference/android/view/inputmethod/EditorInfo#makeCompatible(int)`.

<br />

Constant Value:

224
(0x000000e0)