我想设置EditText验证,
仅包含数字,小数位数为4位,小数位数为2位数...总计6位数,
我也想要只输入数字表格编号。如果我选择任何非数字编号,则EditText将不接受它。
如果有任何建议,那就太好了。 感谢。
答案 0 :(得分:4)
有无
android:inputType="numberDecimal"
EditText
的属性
您可以将正则表达式用于验证部分。以下只是一个样本
您可以使用在线正则表达式测试器@ http://regex101.com/r/uG9aF6/1
进行查看String input = "1024.22";
String pattern = "([0-9]{4})(\.)([0-2]{2})"; // 4 digits followe by . followed by 2 digits
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(input);
if(m.matches())
{
System.out.println("Validated");
}
else
{
System.out.println("Not Validated");
}
答案 1 :(得分:1)
android:inputType ="number"
的xml布局中的 android:maxLength="6"
和editText
会弹出数字键盘,只能在editText
中输入六位数字
像这样
<EditText
android:id="@+id/myinput"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:inputType="numberDecimal"
android:maxLength="6"
android:hint="@string/somestring"
android:layout_weight="1"
/>
答案 2 :(得分:1)
尝试这种模式^([0-9] {1,4})(。[0-9] {1,2})?$
它之前接受最多4位数字。
之后最多只有2次答案 3 :(得分:0)
您可以查看您的期间位置。例如 在你的情况下
char value = 'anychar' ;
if (edittext.gettext.toString().indexOf(value) == 4 ){ // your logic goes here }
答案 4 :(得分:0)
<EditText
android:id="@+id/edit1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="numberDecimal"
android:maxLength="7" />
数字为4位数,。(点)为1位数,分数为2位数。 当你专注于Edittext时,它也是Number Decimal SoftKeyboard。
如果你想专注于Edittext auto,请使用:
android:focusable="true"