android中的EditText(货币)验证

时间:2014-08-04 12:22:03

标签: android xml android-edittext

我想设置EditText验证,

仅包含数字,小数位数为4位,小数位数为2位数...总计6位数,

我也想要只输入数字表格编号。如果我选择任何非数字编号,则EditText将不接受它。

如果有任何建议,那就太好了。 感谢。

5 个答案:

答案 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"