Java 浮点数和整数编辑文本
嗨,我正在尝试做一个只接受浮点数或整数的EditText。我是这样做的,但不是很好: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
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" />
非常感谢你!太好了!非常感谢你!太好了!非常感谢你!太好了!非常感谢你!太好了!