-1

如何仅允许将有效的浮点数放入文本字​​段中的浮点数

2.353 -2.354 4444.45

4

4 回答 4

2

在该字段上实现一个焦点侦听器。当焦点从文本字段更改到表单的任何其他部分时,只需使用正则表达式来检查输入的有效性。

就像是 :

^(-)?\d*(\.\d*)?$

应该做的伎俩。

然后使用 Android 的模式匹配来查看输入是否与 regexp 匹配:

Pattern p = Pattern.compile("^(-)?\d*(\.\d*)?$");
Matcher m = p.matcher(inputString);
if (m.find()) { 
    ////Found
}
else {
  //Not found
}

但请注意本地设置...例如在法国,用于分隔小数的点 (.) 实际上是逗号 (,)

于 2012-04-13T09:04:10.737 回答
0

使用OnFocusChangeListener来实现这一点。

//value pool
final String[] check = new String[]{"2.353","-2.354","4444.45"};

 yourEditText.setOnFocusChangeListener(new OnFocusChangeListener() {

        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            String s = ((EditText)v).getText().toString().trim();

            for(String tmp : check){
                if(!TextUtils.isEmpty(s) && s.equals(tmp)){
                    //it ok
                    break;
                }
                else{
                    //do something
                }
            }
        }
    });
于 2012-04-13T08:51:56.297 回答
-1

对于edittext使用android:inputType="number"

将结果字符串转换为整数(例如,Integer.parseInt(myEditText.getText().toString())`)。

于 2012-04-13T08:54:22.603 回答
-1
android:inputType="numberDecimal|numberSigned"
于 2014-04-03T05:27:59.230 回答