在日食中我尝试制作一个计算器。我有两个单独的文本字段,用于两个数字和加法减法按钮。当我按下添加或子按钮而不输入值应用程序崩溃。有没有可能的出路?
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));
}
答案 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设置为要求输入数字值而不是字符串 - 在计算之前,你需要检查输入值是否为空(如果为真,则不要)。