Error: in Builder can not be applied

4

I'm developing a simple calculator. I'm doing a check if one of the fields is null open an AlertDialog, but I have the Error in Builder can not be applied, in this of AlertDialog.Builder. Can someone help me solve it?

//Declarações de Variáveis
EditText valor1, valor2, resultado;
Button soma, sub, mult, divi;
double v1, v2, result;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_layout_xml);

    //Obtem os objetos do actitity_layout_xml.xml
    valor1 = (EditText) findViewById(R.id.calculo_valor1);
    valor2 = (EditText) findViewById(R.id.calculo_valor2);
    resultado = (EditText) findViewById(R.id.calculo_resultado);

    //Atribuindo os botões em variáveis que foram declaradas globais
    soma = (Button) findViewById(R.id.calculo_soma);
    sub = (Button) findViewById(R.id.calculo_subtracao);
    mult = (Button) findViewById(R.id.calculo_multiplicacao);
    divi = (Button) findViewById(R.id.calculo_divisao);

    //Ação dos botões
    soma.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {

            if (valor1.getText().toString().isEmpty() || valor2.getText().toString().isEmpty()) {

                //Alertas/Notificações
                AlertDialog.Builder dlg = new AlertDialog.Builder(this);
                dlg.setMessage("Há campos em branco");
                dlg.setNeutralButton("OK",null);
                dlg.show();

            }else {

                //Convertendo a variável valor1 e valor2 em string, depois em Double e armazenando em variáveis
                v1 = Double.parseDouble(valor1.getText().toString());
                v2 = Double.parseDouble(valor2.getText().toString());

                result = v1 + v2;

                //Convertendo a variável result em string e atribuindo ela em um EditText
                resultado.setText(String.valueOf(result));
            }
        }});


        sub.setOnClickListener(new View.OnClickListener()

        {

            public void onClick (View v){

            //Convertendo a variável valor1 e valor2 em string, depois em Double e armazenando em variáveis
            v1 = Double.parseDouble(valor1.getText().toString());
            v2 = Double.parseDouble(valor2.getText().toString());
            result = v1 - v2;

            //Convertendo a variável result em string e atribuindo ela em um EditText
            resultado.setText(String.valueOf(result));
        }
        }

        );

        mult.setOnClickListener(new View.OnClickListener()

        {

            public void onClick (View v){

            //Convertendo a variável valor1 e valor2 em string, depois em Double e armazenando em variáveis
            v1 = Double.parseDouble(valor1.getText().toString());
            v2 = Double.parseDouble(valor2.getText().toString());
            result = v1 * v2;

            //Convertendo a variável result em string e atribuindo ela em um EditText
            resultado.setText(String.valueOf(result));
        }
        }

        );

        divi.setOnClickListener(new View.OnClickListener()

        {

            public void onClick (View v){

            //Convertendo a variável valor1 e valor2 em string, depois em Double e armazenando em variáveis
            v1 = Double.parseDouble(valor1.getText().toString());
            v2 = Double.parseDouble(valor2.getText().toString());
            result = v1 / v2;

            //Convertendo a variável result em string e atribuindo ela em um EditText
            resultado.setText(String.valueOf(result));
        }
        }

        );
    }
}
    
asked by anonymous 20.07.2016 / 03:31

1 answer

3

Just change the following line:

AlertDialog.Builder dlg = new AlertDialog.Builder(this);

To:

AlertDialog.Builder dlg = new AlertDialog.Builder(NomeDaClasse.this);

Because only this is not mentioning context .

    
20.07.2016 / 04:56