我制作了这段代码,当我尝试将editable的值转换为整数时程序崩溃,因为它的texted类型是十进制的,我怀疑它是在应用程序必须将editable更改为字符串的时候,因为事实上,编辑文本在编辑文本后为空时会崩溃。
EditText Y = (EditText) findViewById(R.id.y);
Y.addTextChangedListener(new TextWatcher(){
@Override
public void afterTextChanged(Editable s) {
if(s != null){
int Yvalue = Integer.parseInt(s.toString());
}
}
答案 0 :(得分:0)
在将String解析为Integer时,我更有可能发生NumberFormatException。尝试将其包含在该异常的try / catch中。
try {
Yvalue = Integer.parseInt(number);
} catch (NumberFormatException e) {
Yvalue = defaultVal; // or do whatever necessary
}
答案 1 :(得分:0)
尝试将string的值解析为float并将其置于float变量
中float Yvalue = Float.parseFloat(s.toString());
答案 2 :(得分:0)
假设您只想要整数,请尝试以下方法:
@Override
public void afterTextChanged(Editable s) {
if (s.length() == 0) {
// complain about no input
} else {
try {
int yValue = Integer.parseInt(s.toString());
// ...
} catch (NumberFormatException e) {
// complain about invalid input
}
}
}
我不是Android开发人员,但如果没有办法在输入字段中添加掩码以防止输入整数以外的任何内容,我会感到惊讶。