下面的代码有什么问题? 当我点击一个按钮并且edittext为空时,应用程序出错,如果edittext包含零或其他数字,那就可以了......
提前致谢
public void onMyButtonClick(View view)
{
EditText rateet = (EditText) findViewById(R.id.rateet);
if (rateet.getText().toString().length()==0 | Double.parseDouble(rateet.getText().toString())==0){
Toast.makeText(getApplicationContext(),"Wrong rate!", Toast.LENGTH_SHORT).show();
return;
}
else {
double r1=Double.parseDouble(rateet.getText().toString());
Intent intent = new Intent(this, MainActivity.class);
intent.putExtra("rate", r1);
startActivity(intent);
}
}
答案 0 :(得分:1)
问题在于这个表达式:
Double.parseDouble(rateet.getText().toString())==0
当EditText为空时,返回的String是一个空String,它不是有效的double常量。在调用parseDouble()
之前,您必须首先测试空字符串。
您还应该捕获NumberFormatException
来处理EditText中的String不是有效数字的其他情况。