Android,请告诉我我的错误
问题描述:
我对Java以及Android编程都很陌生。我试图制作一个计算器。但是,一旦我插入了平方根按钮,应用程序崩溃,只要我击中分裂或平方根。我不知道我要去哪里错。请帮助?Android,请告诉我我的错误
public class MainScreen extends Activity implements OnClickListener {
EditText edit1, edit2;
TextView txt;
Button butt, diff, mul, div, sqr, per;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
edit1 = (EditText)findViewById(R.id.editText1);
edit2 = (EditText)findViewById(R.id.editText2);
txt = (TextView)findViewById(R.id.textView1);
butt = (Button)findViewById(R.id.button1);
butt.setOnClickListener(this);
diff = (Button)findViewById(R.id.button2);
diff.setOnClickListener(this);
mul = (Button)findViewById(R.id.button3);
mul.setOnClickListener(this);
div = (Button)findViewById(R.id.button4);
div.setOnClickListener(this);
sqr = (Button)findViewById(R.id.button5);
sqr.setOnClickListener(this);
per = (Button)findViewById(R.id.button6);
per.setOnClickListener(this);
}
@Override
public void onClick(View v) {
String a;
// TODO Auto-generated method stub
String b;
Integer sum, sub, mul, div;
Double x ;
a= edit1.getText().toString();
b= edit2.getText().toString();
x=(double) Integer.parseInt(a);
switch (v.getId()) {
case R.id.button1:
sum = Integer.parseInt(a)+ Integer.parseInt(b);
txt.setText(sum.toString());
break;
case R.id.button2:
sub = Integer.parseInt(a)- Integer.parseInt(b);
txt.setText(sub.toString());
break;
case R.id.button3:
mul = Integer.parseInt(a)* Integer.parseInt(b);
txt.setText(mul.toString());
break;
case R.id.button4:
div = (Integer.parseInt(a))/(Integer.parseInt(b));
txt.setText(div.toString());
case R.id.button5:
txt.setText((int) Math.sqrt(x));
default:
break;
}}}
答
使用
(int) Math.sqrt(x)
不好主意 - sqrt不返回整数。当您编写
textView.setText(int)
- Andrid认为,您提供字符串资源的id,并且它无法找到它并崩溃。
使用此:
case R.id.button5:
txt.setText(String.valueOf(Math.sqrt(x)));
break;
包括堆栈跟踪。 – 2012-02-04 13:52:59