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

  • Post author:
  • Post category:其他


【背景】

经过一些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,当点击后要输入内容的时候,弹出的输入法,自动变成那种只能输入数字的小键盘类型的了:

EditText set to number show keyboard only show number

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

xml中:

android:inputType="text"

或代码中:

someEditText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_NORMAL);

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

edittext inputtype is text how keyboard look like

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

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


TextView | Android Developers – android:inputType

中的完整的列表:



版权声明:本文为ysh06201418原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。