您的位置:首页 > 移动开发 > Android开发

Android中EditText(或TextView)中的InputType类型含义与如何定义

2017-05-03 14:35 489 查看
【背景】

经过一些Android中EditText方面的折腾:

【已解决】android中的EditText控件没有获得焦点但是输入法却弹出显示->Activity中不要默认就显示输入法

【暂未去解决】Android中EditText如何在失去焦点后让输入法消失

【已解决】Android中EditText点击获得焦点后无法显示输入法键盘

然后对于EditText(或TextView)中的InputType的值的含义和类型,以及如何定义,有了个更清晰点的认识。

现在整理如下:


EditText的InputType属性,可以在代码中设置,也可以预先在xml中定义

设置EditText的InputType属性,最简单省事的办法就是在定义EditText的xml中直接设置。

比如:

想要设置一个可编辑的文本框的输入内容为只能输入数字,则就可以:

(1)xml中定义InputType为number
<EditText
android:id="@+id/variableValue"
......
android:inputType="number" />


(2)代码中设置InputType为TYPE_CLASS_NUMBER | TYPE_NUMBER_VARIATION_NORMAL
EditText variableValueView = (EditText) variableLayout.findViewById(R.id.variableValue);
int inputType = InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_NORMAL;
variableValueView.setInputType(inputType);


这样的话,之后界面中生成的EditText,当点击后要输入内容的时候,弹出的输入法,自动变成那种只能输入数字的小键盘类型的了:



另外,附上,正常的普通字符串,即:

xml中:
android:inputType="text"


或代码中:
someEditText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_NORMAL);


时,显示出来的输入法键盘的效果:



EditText的InputType属性对应的xml定义有哪些,以及代码中设置的InputType类型有哪些

知道了设置EditText的InputType属性值,既可以通过xml中定义,也可以在代码中设置为InputType的某种值,但是到底这些值有哪些,以及分别对应的含义是啥,则可以参考官网:

TextView
| Android Developers – android:inputType

中的完整的列表:
Constant
Value
Description
none
0×00000000
There is no content type. The text is not editable.
text
0×00000001
Just plain old text. Corresponds to TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_NORMAL .
textCapCharacters
0×00001001
Can be combined with text and its variations to request capitalization of all characters. Corresponds to TYPE_TEXT_FLAG_CAP_CHARACTERS .
textCapWords
0×00002001
Can be combined with text and its variations to request capitalization of the first character of every word. Corresponds to TYPE_TEXT_FLAG_CAP_WORDS .
textCapSentences
0×00004001
Can be combined with text and its variations to request capitalization of the first character of every sentence. Corresponds to TYPE_TEXT_FLAG_CAP_SENTENCES .
textAutoCorrect
0×00008001
Can be combined with text and its variations to request auto-correction of text being input. Corresponds toTYPE_TEXT_FLAG_AUTO_CORRECT .
textAutoComplete
0×00010001
Can be combined with text and its variations to specify that this field will be doing its own auto-completion and talking with the input method appropriately. Corresponds to TYPE_TEXT_FLAG_AUTO_COMPLETE .
textMultiLine
0×00020001
Can be combined with text and its variations to allow multiple lines of text in the field. If this flag is not set, the text field will be constrained to a single line. Corresponds to TYPE_TEXT_FLAG_MULTI_LINE .
textImeMultiLine
0×00040001
Can be combined with text and its variations to indicate that though the regular text view should not be multiple lines, the IME should provide multiple lines if it can. Corresponds to TYPE_TEXT_FLAG_IME_MULTI_LINE .
textNoSuggestions
0×00080001
Can be combined with text and its variations to indicate that the IME should not show any dictionary-based word suggestions. Corresponds to TYPE_TEXT_FLAG_NO_SUGGESTIONS .
textUri
0×00000011
Text that will be used as a URI. Corresponds to TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_URI .
textEmailAddress
0×00000021
Text that will be used as an e-mail address. Corresponds to TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_EMAIL_ADDRESS .
textEmailSubject
0×00000031
Text that is being supplied as the subject of an e-mail. Corresponds to TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_EMAIL_SUBJECT .
textShortMessage
0×00000041
Text that is the content of a short message. Corresponds to TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_SHORT_MESSAGE .
textLongMessage
0×00000051
Text that is the content of a long message. Corresponds to TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_LONG_MESSAGE .
textPersonName
0×00000061
Text that is the name of a person. Corresponds to TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_PERSON_NAME .
textPostalAddress
0×00000071
Text that is being supplied as a postal mailing address. Corresponds to TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_POSTAL_ADDRESS .
textPassword
0×00000081
Text that is a password. Corresponds to TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_PASSWORD .
textVisiblePassword
0×00000091
Text that is a password that should be visible. Corresponds to TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_VISIBLE_PASSWORD .
textWebEditText
0x000000a1
Text that is being supplied as text in a web form. Corresponds to TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_WEB_EDIT_TEXT .
textFilter
0x000000b1
Text that is filtering some other data. Corresponds toTYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_FILTER .
textPhonetic
0x000000c1
Text that is for phonetic pronunciation, such as a phonetic name field in a contact entry. Corresponds to TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_PHONETIC .
textWebEmailAddress
0x000000d1
Text that will be used as an e-mail address on a web form. Corresponds to TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS .
textWebPassword
0x000000e1
Text that will be used as a password on a web form. Corresponds to TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_WEB_PASSWORD .
number
0×00000002
A numeric only field. Corresponds to TYPE_CLASS_NUMBER | TYPE_NUMBER_VARIATION_NORMAL.
numberSigned
0×00001002
Can be combined with number and its other options to allow a signed number. Corresponds to TYPE_CLASS_NUMBER | TYPE_NUMBER_FLAG_SIGNED .
numberDecimal
0×00002002
Can be combined with number and its other options to allow a decimal (fractional) number. Corresponds toTYPE_CLASS_NUMBER | TYPE_NUMBER_FLAG_DECIMAL .
numberPassword
0×00000012
A numeric password field. Corresponds to TYPE_CLASS_NUMBER | TYPE_NUMBER_VARIATION_PASSWORD .
phone
0×00000003
For entering a phone number. Corresponds to TYPE_CLASS_PHONE .
datetime
0×00000004
For entering a date and time. Corresponds to TYPE_CLASS_DATETIME | TYPE_DATETIME_VARIATION_NORMAL .
date
0×00000014
For entering a date. Corresponds to TYPE_CLASS_DATETIME | TYPE_DATETIME_VARIATION_DATE .
time
0×00000024
For entering a time. Corresponds to TYPE_CLASS_DATETIME | TYPE_DATETIME_VARIATION_TIME .
如此,就可以自己去在xml或代码中,分别试试,每种不同的InputType对应的都是什么效果了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: