我是android studio的新手,并试图制作一个计算器应用程序。我的几乎所有按钮都在工作(0-9),但我只需编写加法,减法,乘法和除法按钮。现在我遇到了一个问题:
错误:不兼容的类型:double无法转换为String。
我真的不知道如何更改它以让它工作。这是我的代码的一部分:
//Button A (Addition) Event Handler
buttonA.setOnClickListener(
//Button A Interface
new Button.OnClickListener(){
//Button A Callback Method
public void onClick(View v){
TextView output = (TextView)findViewById(R.id.editText);
tempDouble = Double.parseDouble(output.getText().toString());
output.setText("");
sign = "+";
}
}
);
//Button S (Subtract) Event Handler
buttonS.setOnClickListener(
//Button S Interface
new Button.OnClickListener(){
//Button S Callback Method
public void onClick(View v){
TextView output = (TextView)findViewById(R.id.editText);
tempDouble = Double.parseDouble(output.getText().toString());
output.setText("");
sign = "-";
}
}
);
//Button D (Divide) Event Handler
buttonD.setOnClickListener(
//Button D Interface
new Button.OnClickListener(){
//Button D Callback Method
public void onClick(View v){
TextView output = (TextView)findViewById(R.id.editText);
tempDouble = Double.parseDouble(output.getText().toString());
output.setText("");
sign = "/";
}
}
);
//Button M (Multiply) Event Handler
buttonM.setOnClickListener(
//Button M Interface
new Button.OnClickListener(){
//Button M Callback Method
public void onClick(View v){
TextView output = (TextView)findViewById(R.id.editText);
tempDouble = Double.parseDouble(output.getText().toString());
output.setText("");
sign = "*";
}
}
);
//Button Equals
buttonE.setOnClickListener(
new Button.OnClickListener(){
public void onClick(View v){
TextView output = (TextView)findViewById(R.id.editText);
tempDouble2 = Double.parseDouble(output.getText().toString());
if (sign .equals("+")){
output.setText(Double.toString(tempDouble + tempDouble2));
}
else if (sign .equals("-")){
output.setText(Double.toString(tempDouble - tempDouble2));
}
else if (sign .equals("X"))){
output.setText(Double.toString(tempDouble * tempDouble2));
}
else if (sign .equals("/")){
if (tempDouble2 == 0){
//Cannot devide by zero
output.setText("X");
}
else {
output.setText(Double.toString(tempDouble / tempDouble2));
}
}
//Reset the Sign variable
sign = "";
}
}
);
}
我也得到错误:
错误:二元运算符的错误操作数类型' - '
错误:二元运算符的错误操作数类型' *'
错误:二元运算符' /'
的错误操作数类型
有经验的人可以帮我吗?
答案 0 :(得分:1)
你不能使用' +'两个Double
对象之间的运算符。
如果要将Double转换为String,则应使用
String.valueOf(tempDouble);
如果要添加两个Double对象,则应使用
tempDouble.doubleValue() + tempDouble2;