Java 加上2个数字==android studio
我正在开发android简单计算器,它工作正常,但只有一个问题,当我按2+3,再按=和再次=时,结果应该是11,但不工作!我的活动文件是: 拜访 拜访 我无法添加代码 错误 请帮帮我Java 加上2个数字==android studio,java,android,Java,Android,我正在开发android简单计算器,它工作正常,但只有一个问题,当我按2+3,再按=和再次=时,结果应该是11,但不工作!我的活动文件是: 拜访 拜访 我无法添加代码 错误 请帮帮我 ` package com.example.administrator.mashinhesab; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import
` package com.example.administrator.mashinhesab;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import java.text.DecimalFormat;
public class MainActivity extends AppCompatActivity {
Button button0, button1, button2, button3, button4, button5, button6,
button7, button8, button9, buttonAdd, buttonSub, buttonDivision,
buttonMul, buttonC, buttonEqual;
EditText edt1;
TextView edt2;
private static final char ADDITION = '+';
private static final char SUBTRACTION = '-';
private static final char MULTIPLICATION = '*';
private static final char DIVISION = '/';
private char CURRENT_ACTION;
private double num1 = Double.NaN;
private double num2;
private DecimalFormat decimalFormat;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViews();
Button();
decimalFormat = new DecimalFormat("#.##########");
}
private void Button(){
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edt1.setText(edt1.getText() + "1");
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edt1.setText(edt1.getText() + "2");
}
});
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edt1.setText(edt1.getText() + "3");
}
});
button4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edt1.setText(edt1.getText() + "4");
}
});
button5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edt1.setText(edt1.getText() + "5");
}
});
button6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edt1.setText(edt1.getText() + "6");
}
});
button7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edt1.setText(edt1.getText() + "7");
}
});
button8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edt1.setText(edt1.getText() + "8");
}
});
button9.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edt1.setText(edt1.getText() + "9");
}
});
button0.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edt1.setText(edt1.getText() + "0");
}
});
buttonAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
computeCalculation();
CURRENT_ACTION = ADDITION;
edt2.setText(decimalFormat.format(num1) + "+");
edt1.setText(null);
}
});
buttonSub.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
computeCalculation();
CURRENT_ACTION = SUBTRACTION;
edt2.setText(decimalFormat.format(num1) + "-");
edt1.setText(null);
}
});
buttonMul.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
computeCalculation();
CURRENT_ACTION = MULTIPLICATION;
edt2.setText(decimalFormat.format(num1) + "*");
edt1.setText(null);
}
});
buttonDivision.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
computeCalculation();
CURRENT_ACTION = DIVISION;
edt2.setText(decimalFormat.format(num1) + "/");
edt1.setText(null);
}
});
buttonEqual.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
computeCalculation();
edt2.setText(edt2.getText().toString() + decimalFormat.format(num2) + " = " + decimalFormat.format(num1));
num1 = Double.NaN;
CURRENT_ACTION = '0';
}
});
buttonC.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(edt1.getText().length() > 0) {
CharSequence currentText =edt1.getText();
edt1.setText(currentText.subSequence(0, currentText.length()-1));
}
else {
num1 = Double.NaN;
num2 = Double.NaN;
edt1.setText("");
edt2.setText("");
}
}
}
);
}
private void computeCalculation () {
if (!Double.isNaN(num1)) {
num2 = Double.parseDouble(edt1.getText().toString());
edt1.setText(null);
if (CURRENT_ACTION == ADDITION)
num1 = this.num1 + num2;
else if (CURRENT_ACTION == SUBTRACTION)
num1 = this.num1 - num2;
else if (CURRENT_ACTION == MULTIPLICATION)
num1 = this.num1 * num2;
else if (CURRENT_ACTION == DIVISION)
num1 = this.num1 / num2;
} else {
try {
num1 = Double.parseDouble(edt1.getText().toString());
} catch (Exception e) {
}
}
}
private void findViews () {
button0 = (Button) findViewById(R.id.button0);
button1 = (Button) findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
button3 = (Button) findViewById(R.id.button3);
button4 = (Button) findViewById(R.id.button4);
button5 = (Button) findViewById(R.id.button5);
button6 = (Button) findViewById(R.id.button6);
button7 = (Button) findViewById(R.id.button7);
button8 = (Button) findViewById(R.id.button8);
button9 = (Button) findViewById(R.id.button9);
buttonAdd = (Button) findViewById(R.id.buttonadd);
buttonSub = (Button) findViewById(R.id.buttonsub);
buttonMul = (Button) findViewById(R.id.buttonmul);
buttonDivision = (Button) findViewById(R.id.buttondiv);
buttonC = (Button) findViewById(R.id.buttonC);
buttonEqual = (Button) findViewById(R.id.buttoneql);
edt1 = (EditText) findViewById(R.id.edt1);
edt2 = (TextView) findViewById(R.id.edt2);
}
}`
我写6+8=14,再写148,再写NaN8,再写NaN,当你处理等于时,按下你设置当前动作为“0”代码>因此,当您再次按下时,所有条件都不成立。只要去掉这条线,你想要达到的目标就可以实现。我还建议您研究一些java和android参考资料,以便改进代码。您好,欢迎来到Stack Overflow。请将您的代码粘贴到此处,不要将其链接到其他网站。您好,请发布您的错误登录。我无法添加代码错误请尝试在出现错误的地方将代码拆分为较小的部分。这将有助于未来的读者在没有太多噪音的情况下再现错误。我写6+8=14,再写148,再写=NaN8,再写=NaN8,再写=NaN我在第一篇文章中添加屏幕截图我写6+8=14,再写=148,再写=NaN8,再写=NaN