按下按钮会导致应用崩溃

时间:2015-12-19 17:04:00

标签: android button

在日食中我尝试制作一个计算器。我有两个单独的文本字段,用于两个数字和加法减法按钮。当我按下添加或子按钮而不输入值应用程序崩溃。有没有可能的出路?

public void onClick(View v) {
    // TODO Auto-generated method stub
    String l1= et1.getText().toString();
    String l2= et2.getText().toString();
    int a=0, b=0;

    double result=0.0;
    a=Integer.parseInt(l1);
    b=Integer.parseInt(l2);

    switch(v.getId())
    {
    case R.id.b1:

        result=a+b;
        break;
    case R.id.b2:
        result=a-b;
        break;
    case R.id.b3:
        result = a*b;
        break;
    case R.id.b4:
        if(b==0)
        {
            open("Cannot Divide By zero");
        }
        else result = a/b;
        break;
    }
    et3.setText(Double.toString(result));
}

2 个答案:

答案 0 :(得分:1)

如果在EditText中没有输入任何值,则Integer.parseInt()方法将崩溃,因为传递的字符串不是有效数字。

a=Integer.parseInt(l1);
b=Integer.parseInt(l2);

替换为:

if(!l1.isEmpty() && !l2.isEmpty()){
   a=Integer.parseInt(l1);
   b=Integer.parseInt(l2);
}else{
   Toast.makeText(this,"Something is wrong!",Toast.LENGTH_SHORT).show();
}

注意:上面的代码只检查是否在EditTexts中输入了一些内容,你应该检查它是否也是一个数字。我会留下那部分供你学习;)

答案 1 :(得分:0)

您应该发布有关您的代码的更多详细信息以获得许多支持,但我想您已经遇到了这个问题:

添加或子函数net两个整数来计算,但是你没有在Edittext(文本字段)中输入任何值(数值),值为null或空字符串如此错误。

解决方案: - 您将edittext设置为要求输入数字值而不是字符串 - 在计算之前,你需要检查输入值是否为空(如果为真,则不要)。

相关问题