有两种写法:一、利用安卓自身的语法。二、利用正则表达式。
一、利用安卓自身的语法
1.如果设置只输入数字
edittext.setInputType( InputType.TYPE_CLASS_NUMBER);
此时只会弹出数字输入框,符号点击后不会输入到文字框中
2.只能输入数字和小数点
edittext.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
此时注意:只设置InputType.TYPE_NUMBER_FLAG_DECIMAL是无法实现只能输入数字和小数点的,必须InputType.TYPE_CLASS_NUMBER 和InputType.TYPE_NUMBER_FLAG_DECIMAL同时设置才可以
3.在布局xml文件中写法:
<EditText
android:id="@+id/et_total_money_input"
style="@android:style/Widget.TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="@null"
android:gravity="right"
android:hint="请输入金额"
android:inputType="number|numberDecimal"
android:textColor="@color/font_FF4081"
android:textSize="12sp"/>
二、利用正则表达式
需求:
1.EditText获取到焦点时,弹出数字键盘;
2. 只能输入数字或字母;
解决方案
1.弹出数组键盘简单,就是把inputType类型设为number
<EditText
android:id="@+id/home_et_validate"
style="@style/order_vcode_input"
android:hint="请输入订单验证码"
android:inputType="number"
android:digits="@string/filter_vcode"/>
2.正则:就是设置属性digits。
对于1中的filter_vcode就是下面的2,把[a-zA-Z]写到strings.xml文件里面。
android:inputType="number"
android:digits="0123456789xyzXYZ"
因篇幅问题不能全部显示,请点此查看更多更全内容