Ir ao conteúdo
  • Cadastre-se
Khromos

Calculadora em android studio - como travo os operadores?

Recommended Posts

Fala galerinha. To começando ai na programação e estou estudando aqui no Canadá. Então estou fazendo uma calculadora em Android Studio e está quase completa, porém falta 2 coisas essenciais. como eu faço pra bloquear os botões de operação (+-*/) depois de clicados? Fiz algo do tipo if(opClicked = true) com uma variavel booleana e passei o valor false após o uso mas n está funcionando. Alguém poderia me ajudar a resolver esse codigo? valeu gente.

 

package calculator_college.calculator; import android.icu.text.DecimalFormat; import android.icu.text.NumberFormat; import android.os.PersistableBundle; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import org.w3c.dom.Text;

public class MainActivity extends AppCompatActivity{
TextView textView;
double num1=0, num2=0, result = 0;
int operators = 0;
boolean opClicked = false;
boolean resultDone = false;


   @Override protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = (TextView) findViewById(R.id.result); }
       
   public void setOpClicked(View view) {

        Button temp = (Button) view;
        Log.d("OPBUTTON","button text: "+temp.getText().toString());
        num1 = Double.parseDouble(textView.getText().toString());
        switch (temp.getText().toString()) {
        case "+":
             operators = 1;
                 textView.setText("");
                 opClicked = true;
             break;

        case "-":
                operators = 2;
                    textView.setText("");
                    opClicked = true;
         break;

         case "X":
                operators = 3;
                     textView.setText("");
                     opClicked = true;
          break;

         case "/":
                  operators = 4;
                     textView.setText("");
                     opClicked = true;
          break;

          case "xY":
              operators = 5;
              textView.setText("");
              opClicked = true;
          break; 
           } 
          Log.d("OPBUTTON","Operator button: "+operators);
          Log.d("OPBUTTON", "num1: "+num1);

          if (resultDone) { 
              resultDone = false; } 
          }

    public void numClicked(View view) {

         if (textView.getText().equals("0.0")) {
                textView.setText("0");
           }
         String number = ((Button) view).getText().toString();
         TextView result = ((TextView)findViewById(R.id.result));
         result.setText(String.format("%s%s", result.getText().toString(), number));
}

public void resultClicked(View view) { 
    num2 = Double.parseDouble(textView.getText().toString());
    Log.d("OPBUTTON","num2: "+num2);
        switch (operators) {

           case 1:
              if(opClicked == true){
                 result = num1 + num2;
                 Log.d("RESULTBUTTON","result-direct: "+result);
                 opClicked = false;
          break;

          case 2:
             if (opClicked == true){
                 result = num1 - num2;
                 opClicked = false;
              } 
            break;

         case 3:
               if (opClicked == true){
                  result = num1 * num2;
                  opClicked = false;
                }
               break;
        
               case 4:
                  if (opClicked == true){
                      result = num1 / num2;
                      opClicked = false;
                   } break;

             case 5:
                  if (opClicked == true){
                      result = Math.pow(num1, num2);
                      opClicked = false;
                   }
                   break;
         }
public void delClicked(View view) {
     if (opClicked = true) {
           String s = textView.getText().toString();
           textView.setText("");
         
        for (int i = 0; i < s.length() - 1; i++) {
            textView.setText((String.format("%s%c", textView.getText().toString(), s.charAt(i))));
         }
         opClicked = false;
     }
  } 

  public void clearClicked(View view) {
          if (opClicked = true){
              textView.setText("");
              opClicked = false;
              num1 = 0.0;
              num2 = 0.0;
              result = 0.0;
              opClicked = false;
           }
    }
  public void percentageClick(View view) {

         if (opClicked == true) {
             num2 = Double.parseDouble(textView.getText().toString());
             if (num1 != 0) { result = (num1 * num2) / 100;
          }
         textView.setText(String.format("%s", result));
         Log.d("RESULTBUTTON", "result: " + result);
         opClicked = false;
       }
   }
public void pow2Clicked(View view) {
            if (opClicked) {
                 num1 = Double.parseDouble(textView.getText().toString());
                 result = num1 * num1;
                 int temp = (int) result; 
             }
            if (temp == (Double) result) {
                textView.setText(temp + "");
                num1 = Double.parseDouble(textView.getText().toString());
             } else {
                 textView.setText(result + "");
                 num1 = Double.parseDouble(textView.getText().toString());
             }
             opClicked = false;
           }
           Log.d("RESULTBUTTON","result: "+result);
}
public void sqrtClicked(View view) {
     if (opClicked == true) {
         num1 = Double.parseDouble(textView.getText().toString());
         textView.setText(Math.sqrt(num1) + "");
         opClicked = false;
      }
   }
}

 

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×