Java 程序崩溃,文本字段为空
我需要帮助来修复我的代码。我认为这很简单(可能是),但我无法理解。我有一个简单的加法计算器。它工作正常,但是如果我将1个或两个数字文本字段都留空,程序就会崩溃 我有我的if声明,但显然我没有告诉它做正确的事情Java 程序崩溃,文本字段为空,java,android,text,if-statement,textfield,Java,Android,Text,If Statement,Textfield,我需要帮助来修复我的代码。我认为这很简单(可能是),但我无法理解。我有一个简单的加法计算器。它工作正常,但是如果我将1个或两个数字文本字段都留空,程序就会崩溃 我有我的if声明,但显然我没有告诉它做正确的事情 public class MainActivity extends Activity { Double firstNum, secondNum, answerNum; @Override protected void onCreate(Bundle savedInstanceState
public class MainActivity extends Activity {
Double firstNum, secondNum, answerNum;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText first = (EditText) findViewById(R.id.txtFirst);
final EditText second = (EditText) findViewById(R.id.txtSecond);
final TextView answer = (TextView) findViewById(R.id.txtAnswer);
Button calc = (Button) findViewById(R.id.btnCalc);
calc.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// convert pulled info to double using variable names
firstNum = Double.parseDouble(first.getText().toString());
secondNum = Double.parseDouble(second.getText().toString());
if (first == null || second == null)
{
Toast.makeText(MainActivity.this, "Please Enter value", Toast.LENGTH_SHORT).show();
}
else {
// add numbers
answerNum = (firstNum + secondNum);
//set format
DecimalFormat total = new DecimalFormat ("###,###,###.##");
answer.setText("Answer is " + total.format(answerNum));
}
}
});
}
}
您有异常,因为行:
Double.parseDouble(second.getText().toString())
,它无法将空字符串解析为Double,所以您应该添加一些验证代码 如果要验证edittext,请尝试以下代码,它将正常工作
public class MainActivity extends Activity {
double firstNum = 0;
double secondNum = 0, answerNum;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText first = (EditText) findViewById(R.id.editText1);
final EditText second = (EditText) findViewById(R.id.editText2);
final TextView answer = (TextView) findViewById(R.id.textView1);
Button calc = (Button) findViewById(R.id.button1);
calc.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (first.getText().toString().equals("")
|| second.getText().toString().equals("")) {
Toast.makeText(MainActivity.this, "Please Enter value",
Toast.LENGTH_SHORT).show();
} else {
firstNum = Double.parseDouble(first.getText().toString());
secondNum = Double.parseDouble(second.getText().toString());
answerNum = (firstNum + secondNum);
DecimalFormat total = new DecimalFormat("###,###,###.##");
answer.setText("Answer is " + total.format(answerNum));
}
}
});
}
}