-
android:inputType
如果设置android:inputType = "number",则默认弹出的输入键盘为数字键盘,且输入的内容只能为数字。
- InputType文档:http://cs.szpt.edu.cn/android/reference/android/text/InputType.html
-
setRawInputType(int type)
- 也就是说可以通过改变这个方法 达到改变 键盘的输入显示,比如数字键盘,字符键盘,但是这个方法不改变你原有的 设置的字符限制。
- 比如若设置如下,则只是默认弹出弹出数字键盘,但对内容没有限制,此时任然可以输入字符等其他内容。
setRawInputType(InputType.TYPE_CLASS_NUMBER|InputType.TYPE_NUMBER_FLAG_SIGNED);
- 如果想设置允许输入字符,但是希望默认弹出的键盘为数字键盘就可以这样进行设置:
setInputType(InputType.TYPE_CLASS_TEXT);
setRawInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
-
setInputType(int type)
- 效果跟android:inputType一样
细节(坑)Java中需设置基本类型:
-
- 设置只允许数字输入的InputType时,不能只单纯设置如下,否则将无效。
setInputType(InputType.TYPE_NUMBER_FLAG_SIGNED);或者setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);正确的做法是在前面加上TYPE_CLASS_NUMBER,如下:
-
setInputType(InputType.TYPE_CLASS_NUMBER|InputType.TYPE_NUMBER_VARIATION_NORMAL);//只允许输入数字(正整数)
setInputType(InputType.TYPE_CLASS_NUMBER|InputType.TYPE_NUMBER_FLAG_SIGNED);//只允许输入数字(有符号整数)
setInputType(InputType.TYPE_CLASS_NUMBER|InputType.TYPE_NUMBER_FLAG_DECIMAL);//只允许输入数字(decimal,小数)
-
- 设置只允许数字输入的InputType时,不能只单纯设置如下,否则将无效。
- 其他输入设置(如Text、Date、Time、Phone等)都有有相应的基本类型TYPE_CLASS_,使用时也需要在前面加上该基本类型TYPE_CLASS_,然后再加上需要的拓展类型,否则无效