Я не могу подобрать подходящее решение для моих равных на клике. Каждый раз, когда я нажимаю «равно», результат возвращает те же данные, что и запрос. Я думал о добавлении логических значений для каждого (сложение, вычитание, умножение, деление), но я считаю, что могу сделать это прямо на onClickListener для равных. Есть ли в * 1003 встроенные методы, которые я могу использовать, чтобы помочь с расчетами? Должен ли я создать al oop для создания значений с плавающей запятой для хранения значений в зависимости от длины запроса?
package com.example.tester;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
//use to store button id's
Button zero, juan, two, three, four, five, six, seven, eight, nine,
brackets, add, subtract, multiply, divide, percent, clear, equal, period;
//store id of textview
TextView query, result;
//Store value on buttons pressed
String process;
//set brackets to false
boolean clickBracket = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
zero = findViewById(R.id.zero);
juan = findViewById(R.id.juan);
two = findViewById(R.id.two);
three = findViewById(R.id.three);
four = findViewById(R.id.four);
five = findViewById(R.id.five);
six = findViewById(R.id.six);
seven = findViewById(R.id.seven);
eight = findViewById(R.id.eight);
nine = findViewById(R.id.nine);
divide = findViewById(R.id.divide);
multiply = findViewById(R.id.multiply);
subtract = findViewById(R.id.subtract);
add = findViewById(R.id.add);
clear = findViewById(R.id.clear);
brackets = findViewById(R.id.brackets);
percent = findViewById(R.id.percent);
equal = findViewById(R.id.equal);
period = findViewById(R.id.period);
query = findViewById(R.id.query);
result = findViewById(R.id.result);
//set Click
clear.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
query.setText("");
result.setText("");
}
});
zero.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
process = query.getText().toString();
query.setText(process + "0");
}
});
juan.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
process = query.getText().toString();
query.setText(process + "1");
}
});
two.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
process = query.getText().toString();
query.setText(process + "2");
}
});
three.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
process = query.getText().toString();
query.setText(process + "3");
}
});
four.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
process = query.getText().toString();
query.setText(process + "4");
}
});
five.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
process = query.getText().toString();
query.setText(process + "5");
}
});
six.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
process = query.getText().toString();
query.setText(process + "6");
}
});
seven.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
process = query.getText().toString();
query.setText(process + "7");
}
});
eight.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
process = query.getText().toString();
query.setText(process + "8");
}
});
nine.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
process = query.getText().toString();
query.setText(process + "9");
}
});
add.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
process = query.getText().toString();
query.setText(process + "+");
}
});
subtract.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
process = query.getText().toString();
query.setText(process + "-");
}
});
multiply.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
process = query.getText().toString();
query.setText(process + "x");
}
});
divide.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
process = query.getText().toString();
query.setText(process + "÷");
}
});
period.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
process = query.getText().toString();
query.setText(process + ".");
}
});
percent.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
process = query.getText().toString();
query.setText(process + "%");
}
});
brackets.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
if(clickBracket) {
process = query.getText().toString();
query.setText(process + ")");
clickBracket = false;
}else {
process = query.getText().toString();
query.setText(process + "(");
clickBracket = true;
}
}
});
equal.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
process = query.getText().toString();
process = process.replaceAll("×","*");
process = process.replaceAll("%","/100");
process = process.replaceAll("÷","/");
String finalResult = process;
result.setText(finalResult);
}
});
}
}