我一直在研究Android应用程序,它用复数来计算各种操作。我有几个错误,但stackoverflow社区一直很有帮助,我意识到我的风格需要改进(命名的东西)。然而,问题是程序正在计算错误,第三次检查所有的代码,但由于某些原因,它不能正确计算事情(即2 + 2不是4),logcat显示没有错误。我也尝试将输出答案的部分移到不同的地方,但它仍然会出错。这是我的代码:为什么我的Android应用程序中计算(Eclipse)出现错误?
package complex.OliverV;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.RadioButton;
import android.widget.EditText;
public class ComplexNumbersActivity extends Activity {
/** Called when the activity is first created. */
Button Check;
RadioButton plus, minus, multiply, div;
EditText X1,X2,Y1,Y2;
TextView Ans;
int sign;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Check = (Button) findViewById(R.id.Check);
plus = (RadioButton) findViewById(R.id.plus);
minus = (RadioButton) findViewById(R.id.minus);
multiply = (RadioButton) findViewById(R.id.multiply);
div = (RadioButton) findViewById(R.id.div);
Ans = (TextView) findViewById(R.id.Ans);
X1=(EditText) findViewById(R.id.X1);
X2=(EditText) findViewById(R.id.X2);
Y1=(EditText) findViewById(R.id.Y1);
Y2=(EditText) findViewById(R.id.Y2);
plus.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
sign=1;
}
});
minus.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
sign=2;
}
});
multiply.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
sign=3;
}
});
div.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
sign=4;
}
});
Check.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String xs=X1.getText().toString();
String xss=X2.getText().toString();
String ys=Y1.getText().toString();
String yss=Y2.getText().toString();
double x3, y3;
if(!xs.equals("") && !xss.equals("") && !ys.equals("") && !yss.equals("")&& xs != null && xss != null && ys != null && yss != null)
{
double x1=Double.parseDouble(xs);
double x2=Double.parseDouble(xss);
double y1=Double.parseDouble(ys);
double y2=Double.parseDouble(yss);
switch(sign)
{
case(1):
{
x3=(x1+x2);
y3=(y1+y2);
Ans.setText("x = "+x3+"y = "+y3);
}
case(2):
{
x3=(x1-x2);
y3=(y1-y2);
Ans.setText("x = "+x3+"y = "+y3);
}
case(3):
{
x3=((x1*x2) - (y1*y2));
y3=((x2*y1) + (x1*y2));
Ans.setText("x = "+x3+"y = "+y3);
}
case(4):
{
if(x2!=0 && y2!=0)
{
x3 = ((x1 * x2) + (y1 * y2))/((x2 * x2) + (y2 * y2));
y3 = ((x2 * y1) - (x1 * y2))/((x2 * x2) + (y2 * y2));
Ans.setText("x = "+x3+"y = "+y3);
}
else
{
Ans.setText("Enter valid numbers!");
}
}
}
}
else
{
Ans.setText("Enter valid numbers!");
}
}
});
}
}
我得到1,我会重命名他们,如果一切都失败了,我意识到它可能会回来咬我的屁股。 – Oliver 2013-02-28 20:02:42
你确定你的加号按钮真的具有'R.id.plus'的ID,并且你的分割按钮有'R.id.div'并且它们没有被切换吗? – kabuko 2013-02-28 20:06:38
是的,他们所有的人都被正确的分配了,那是我看到的第一个地方。 – Oliver 2013-02-28 20:09:37