Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 浮点数和整数编辑文本_Java_Android_Android Edittext - Fatal编程技术网

Java 浮点数和整数编辑文本

Java 浮点数和整数编辑文本,java,android,android-edittext,Java,Android,Android Edittext,嗨,我正在尝试做一个只接受浮点数或整数的EditText。我是这样做的,但不是很好: myedit=(EditText)findViewById(R.id.my_edit); myedit.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL); 我也这样写过: if(!myedit.getText().toString().matches("[a-zA-Z? ]*"){ //do something } else{ //no correct

嗨,我正在尝试做一个只接受浮点数或整数的EditText。我是这样做的,但不是很好:

myedit=(EditText)findViewById(R.id.my_edit);

myedit.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);
我也这样写过:

if(!myedit.getText().toString().matches("[a-zA-Z? ]*"){
   //do something
}
else{
 //no correct values
}

有人能帮我吗?

您必须将输入过滤器设置为编辑文本

            et.setFilters(new InputFilter[] {
                 new DigitsKeyListener(Boolean.FALSE, Boolean.TRUE) {
                int beforeDecimal = 5, afterDecimal = 2;

                @Override
                public CharSequence filter(CharSequence source, int start, int end,
                        Spanned dest, int dstart, int dend) {
                    String temp = et.getText() + source.toString();

                    if (temp.equals(".")) {
                        return "0.";
                    }
                    else if (temp.toString().indexOf(".") == -1) {
                        // no decimal point placed yet
                        if (temp.length() > beforeDecimal) {
                            return "";
                        }
                    } else {
                        temp = temp.substring(temp.indexOf(".") + 1);
                        if (temp.length() > afterDecimal) {
                            return "";
                        }
                    }

                    return super.filter(source, start, end, dest, dstart, dend);
                }
            }
    });

您必须将输入过滤器设置为编辑文本

            et.setFilters(new InputFilter[] {
                 new DigitsKeyListener(Boolean.FALSE, Boolean.TRUE) {
                int beforeDecimal = 5, afterDecimal = 2;

                @Override
                public CharSequence filter(CharSequence source, int start, int end,
                        Spanned dest, int dstart, int dend) {
                    String temp = et.getText() + source.toString();

                    if (temp.equals(".")) {
                        return "0.";
                    }
                    else if (temp.toString().indexOf(".") == -1) {
                        // no decimal point placed yet
                        if (temp.length() > beforeDecimal) {
                            return "";
                        }
                    } else {
                        temp = temp.substring(temp.indexOf(".") + 1);
                        if (temp.length() > afterDecimal) {
                            return "";
                        }
                    }

                    return super.filter(source, start, end, dest, dstart, dend);
                }
            }
    });

您必须将输入过滤器设置为编辑文本

            et.setFilters(new InputFilter[] {
                 new DigitsKeyListener(Boolean.FALSE, Boolean.TRUE) {
                int beforeDecimal = 5, afterDecimal = 2;

                @Override
                public CharSequence filter(CharSequence source, int start, int end,
                        Spanned dest, int dstart, int dend) {
                    String temp = et.getText() + source.toString();

                    if (temp.equals(".")) {
                        return "0.";
                    }
                    else if (temp.toString().indexOf(".") == -1) {
                        // no decimal point placed yet
                        if (temp.length() > beforeDecimal) {
                            return "";
                        }
                    } else {
                        temp = temp.substring(temp.indexOf(".") + 1);
                        if (temp.length() > afterDecimal) {
                            return "";
                        }
                    }

                    return super.filter(source, start, end, dest, dstart, dend);
                }
            }
    });

您必须将输入过滤器设置为编辑文本

            et.setFilters(new InputFilter[] {
                 new DigitsKeyListener(Boolean.FALSE, Boolean.TRUE) {
                int beforeDecimal = 5, afterDecimal = 2;

                @Override
                public CharSequence filter(CharSequence source, int start, int end,
                        Spanned dest, int dstart, int dend) {
                    String temp = et.getText() + source.toString();

                    if (temp.equals(".")) {
                        return "0.";
                    }
                    else if (temp.toString().indexOf(".") == -1) {
                        // no decimal point placed yet
                        if (temp.length() > beforeDecimal) {
                            return "";
                        }
                    } else {
                        temp = temp.substring(temp.indexOf(".") + 1);
                        if (temp.length() > afterDecimal) {
                            return "";
                        }
                    }

                    return super.filter(source, start, end, dest, dstart, dend);
                }
            }
    });

你能试一下吗

android:input=“number”
在xml文件中


这会将编辑文本设置为仅获取数字作为输入

请尝试

android:input=“number”
在xml文件中


这会将编辑文本设置为仅获取数字作为输入

请尝试

android:input=“number”
在xml文件中


这会将编辑文本设置为仅获取数字作为输入

请尝试

android:input=“number”
在xml文件中


这会将编辑文本设置为仅获取数字作为输入

最简单的方法是将
digits
属性设置为仅接受有效的整数值和十进制值:

android:digits="0123456789."

尽管您可能仍然应该使用try/catch for
NumberFormatException
来包装转换,以防出现一些我不知道的边缘输入情况

最简单的方法是将
digits
属性设置为仅接受有效的整数值和十进制数值:

android:digits="0123456789."

尽管您可能仍然应该使用try/catch for
NumberFormatException
来包装转换,以防出现一些我不知道的边缘输入情况

最简单的方法是将
digits
属性设置为仅接受有效的整数值和十进制数值:

android:digits="0123456789."

尽管您可能仍然应该使用try/catch for
NumberFormatException
来包装转换,以防出现一些我不知道的边缘输入情况

最简单的方法是将
digits
属性设置为仅接受有效的整数值和十进制数值:

android:digits="0123456789."

尽管您可能仍然应该使用try/catch for
NumberFormatException
来包装转换,以防出现一些我不知道的边缘输入情况

很抱歉这么晚了,但它可能会帮助其他人解决这个问题

我发现实现这一点的最简单方法是设置android:input值,如下所示:

<EditText
      android:id="@+id/editText"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:inputType="numberDecimal|numberSigned" />

抱歉,这太晚了,但它可能会帮助其他人解决这个问题

我发现实现这一点的最简单方法是设置android:input值,如下所示:

<EditText
      android:id="@+id/editText"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:inputType="numberDecimal|numberSigned" />

抱歉,这太晚了,但它可能会帮助其他人解决这个问题

我发现实现这一点的最简单方法是设置android:input值,如下所示:

<EditText
      android:id="@+id/editText"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:inputType="numberDecimal|numberSigned" />

抱歉,这太晚了,但它可能会帮助其他人解决这个问题

我发现实现这一点的最简单方法是设置android:input值,如下所示:

<EditText
      android:id="@+id/editText"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:inputType="numberDecimal|numberSigned" />

非常感谢你!太好了!非常感谢你!太好了!非常感谢你!太好了!非常感谢你!太好了!