0

我是 android 新手,正在尝试创建一个简单的程序,将三个输入相加,然后将输出打印到 EditText。每当我按下按钮时,我的代码的第 63 行(我在下面发布的最后一行)就会崩溃......我认为这可能是由于一个空对象或类似的东西。我 99% 确定我的所有变量和其他所有内容都已正确声明。无论如何,这是我的 onClick 方法代码,如果有人能找出导致崩溃的原因,我将不胜感激。

Button solve = (Button) findViewById(R.id.solve);

solve.setOnClickListener(new OnClickListener() {

    public void onClick(View arg0) {

        if  ((a.getText().length() == 0)
            || (" ".equals(a.getText().toString()))
            || (" ".equals(b.getText().toString()))
            || (" ".equals(c.getText().toString()))
            || (b.getText().length() == 0)
            || (c.getText().length() == 0)) {
Toast.makeText(getApplicationContext(), "Some of your inputs are empty.",  Toast.LENGTH_SHORT).show();

        } else {

            double sol = new Double(a.getText().toString())
            + new Double(b.getText().toString())
            + new Double(c.getText().toString());
            res1.setText(Double.toString(sol)); //line that is causing the crash
4

2 回答 2

0

你可以尝试使用Double.Parse...

res1.setText(String.valueOf(sol));
于 2012-10-24T01:29:23.277 回答
0

您以错误的方式将 String 值转换为 Double ,请参阅以下两种方式,

  1. 使用 Double.parseDouble()

    double sol = new Double.parseDouble((a.getText().toString().trim());     // also don't forget to use trim() method to remove white spaces 
    
  2. 使用新的 Double( 值 ).doubleValue()

    double sol = new Double(a.getText().toString().trim()).doubleValue();
    

现在将此sol变量的值设置为 EditText 尝试以下方式,

  1. res1.setText((String)sol));
  2. res1.setText(String.valueOf(sol));
  3. res1.setText( sol + "" );
于 2012-10-24T01:46:54.367 回答