转换EditText到浮点型

如题,我试过这样:

EditText edt = (EditText) findViewById(R.id.price);
float number = Float.valueOf(edt.getText().toString());

但是应用在设备和模拟器上都不加载,返回的信息是:

"the application has stopped unexpectedly. please try again."

并且如果我删除了这一行:

float number = Float.valueOf(edt.getText().toString());

应用就能加载了。应该怎么办?

你的转换应该是可以的,你需要对输入内容做一些限制,比如输入为""的时候会出现异常。

是因为EditText的内容不合法导致的,应该先对EditText的内容做校验,比如可以用正则表达式判断是否是合法字符串。

EditText edt = (EditText) findViewById(R.id.price);
float number=   Float.parseFloat(edt.getText().toString());