I am trying to build a calculator on android studio. My problem is that in order to get a solution from either values, the user will have to press the "equals" button. I'm trying to avoid that and have real time calculations appear in the TextView (when two numbers are combined with the addition symbol, the sum will appear once the second operator is called). If anyone can provide me with some insight that would be great, I'm not a very experienced android developer as of yet. Thanks!
public class MainActivity extends AppCompatActivity {
Button button0, button1, button2, button3, button4, button5, button6, button7, button8,
button9, buttonAdd, buttonSub, buttonMult, buttonDiv, buttonDec, buttonEqual, buttonAC;
TextView calculate;
boolean addition, subtraction, division, multiplication;
float first, second;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button0 = (Button) findViewById(R.id.button_num0);
button1 = (Button) findViewById(R.id.button_num1);
button2 = (Button) findViewById(R.id.button_num2);
button3 = (Button) findViewById(R.id.button_num3);
button4 = (Button) findViewById(R.id.button_num4);
button5 = (Button) findViewById(R.id.button_num5);
button6 = (Button) findViewById(R.id.button_num6);
button7 = (Button) findViewById(R.id.button_num7);
button8 = (Button) findViewById(R.id.button_num8);
button9 = (Button) findViewById(R.id.button_num9);
buttonAdd = (Button) findViewById(R.id.button_add);
buttonSub = (Button) findViewById(R.id.button_subtract);
buttonDiv = (Button) findViewById(R.id.button_divide);
buttonMult = (Button) findViewById(R.id.button_multiply);
buttonDec = (Button) findViewById(R.id.button_decimal);
buttonEqual = (Button) findViewById(R.id.button_equal);
buttonAC = (Button) findViewById(R.id.button_clear);
calculate = (TextView) findViewById(R.id.text_current);
button0.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
calculate.setText(calculate.getText() + button0.getText().toString());
}
});
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
calculate.setText(calculate.getText() + button1.getText().toString());
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
calculate.setText(calculate.getText() + button2.getText().toString());
}
});
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
calculate.setText(calculate.getText() + button3.getText().toString());
}
});
button4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
calculate.setText(calculate.getText() + button4.getText().toString());
}
});
button5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
calculate.setText(calculate.getText() + button5.getText().toString());
}
});
button6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
calculate.setText(calculate.getText() + button6.getText().toString());
}
});
button7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
calculate.setText(calculate.getText() + button7.getText().toString());
}
});
button8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
calculate.setText(calculate.getText() + button8.getText().toString());
}
});
button9.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
calculate.setText(calculate.getText() + button9.getText().toString());
}
});
buttonAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (calculate.getText().equals(null)) {
calculate.setText("");
}
else {
first = Float.parseFloat(calculate.getText() + "");
calculate.setText(calculate.getText() + "+");
addition = true;
calculate.setText(null);
}
}
});
buttonDec.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (calculate.getText().equals(null)) {
calculate.setText("");
}
else {
calculate.setText(calculate.getText() + ".");
}
}
});
buttonMult.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (calculate.getText().equals(null)) {
calculate.setText("");
}
else {
first = Float.parseFloat(calculate.getText() + "");
calculate.setText(calculate.getText() + "*");
multiplication = true;
calculate.setText(null);
}
}
});
buttonSub.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (calculate.getText().equals(null)) {
calculate.setText("");
}
else {
first = Float.parseFloat(calculate.getText() + "");
calculate.setText(calculate.getText() + "-");
subtraction = true;
calculate.setText(null);
}
}
});
buttonDiv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (calculate.getText().equals(null)) {
calculate.setText("");
}
else {
first = Float.parseFloat(calculate.getText() + "");
calculate.setText(calculate.getText() + "/");
division = true;
calculate.setText(null);
}
}
});
buttonEqual.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
second = Float.parseFloat(calculate.getText() + "");
if (addition == true) {
calculate.setText(first + second + "");
addition = false;
}
if (subtraction == true) {
calculate.setText(first - second + "");
subtraction = false;
}
if (multiplication == true) {
calculate.setText(first * second + "");
multiplication = false;
}
if (division == true) {
calculate.setText(first / second + "");
division = false;
}
}
});
}
}