Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.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
Android:从EditText字段获取数据时获取NumberFormatException_Android_Android Layout_Android Emulator - Fatal编程技术网

Android:从EditText字段获取数据时获取NumberFormatException

Android:从EditText字段获取数据时获取NumberFormatException,android,android-layout,android-emulator,Android,Android Layout,Android Emulator,java.lang.RuntimeException:无法启动活动组件信息{com.project/com.project.simple}:java.lang.NumberFormatException EditText et1,et2,et3; Button b1, b2; Float two,three,four; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated

java.lang.RuntimeException:无法启动活动组件信息{com.project/com.project.simple}:java.lang.NumberFormatException

EditText et1,et2,et3;
Button b1, b2;
Float two,three,four;   
@Override
protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.can);

et1 = (EditText) findViewById(R.id.editText1);

two = Float.valueOf(et1.getText().toString());

et2 = (EditText) findViewById(R.id.editText2);

three = Float.valueOf(et2.getText().toString());

et3 = (EditText) findViewById(R.id.editText3);

four = Float.valueOf(et3.getText().toString());

    b1 = (Button) findViewById(R.id.button1);

b2 = (Button) findViewById(R.id.button2);

b1.setOnClickListener(new OnClickListener() {

似乎输入无效。请检查两次,确保您没有尝试将字母解析为数字。如果您有一个float,请检查您是否使用了正确的区域设置进行解析。在德国是pi 31415。。。而不是3.1415

如果无法准备值,可以将解析try放入try-catch块中,如下所示:

float value;
try {
    value=Float.parseFloat(someString);
} catch(NumberFormatException e) {
    // input was no valid float
}

您位于指定字段的
onCreate()
中。用户没有时间输入任何有效数据。您需要将数据的提取移到其他地方…比如您的
onClick()
可能。

将代码从onrate移到其他方法 (例如按钮的onClick方法) 你应该 试试这个:

try{
   two = Float.parseFloat(et1.getText().toString());
}catch(NumberFormatException e){
   two = 0;       
   Toast toast = Toast.makeText(this, 'Invalid number format on `two` field', 500);
   toast.show();  
} 
对于每个文本字段,您要阅读的内容 评论:
float格式为2.3,不使用2,3

未输入任何输入…在此项目中从外部获取值。在这种情况下,请将
float.valueOf()
语句放入try-catch块中