Erro ao retornar valores com AsyncTask

Galera está reportando este erro pelo fato de retornar e executar valores double alguém pode me ajudar

segue o código e o erro.

// Metodo da ação do botão Calcular
public void Calculaar(View view) {
String v1 = av1.getText().toString();
String v2 = av2.getText().toString();
String v3 = av3.getText().toString();
String v4 = av4.getText().toString();

    if (v1.trim().isEmpty() || v2.trim().isEmpty() || v3.trim().isEmpty() || v4.trim().isEmpty()) {
        AlertDialog.Builder dlg = new AlertDialog.Builder(Tela_Pres.this);
        dlg.setMessage("Há Dados em Branco!");
        dlg.setNeutralButton("Ok", null);
        dlg.show();
        return;

    } else {

        double AV1 = Double.parseDouble(av1.getText().toString());
        double AV2 = Double.parseDouble(av2.getText().toString());
        double AV3 = Double.parseDouble(av3.getText().toString());
        double AV4 = Double.parseDouble(av4.getText().toString());

        AsyncTask<Integer, Void, Double> atCalcular = new AsyncTask<Integer, Void, Double>() {

            @Override
            protected Double doInBackground(Double... params) {
                try {
                    Double resultado = ((params[0] * 2) + (params[1] * 2) + (params[2] * 1) + (params[3] * 1)) / 6;

                    DecimalFormat formato = new DecimalFormat("#.##");
                    resultado = Double.valueOf(formato.format(resultado));

                    return resultado;

                } catch (Exception e) {
                    e.printStackTrace();
                }

                return null;
            }
            @Override
            protected void onPostExecute(Double resultado) {
                super.onPostExecute(resultado);

                if (resultado < 6) {
                    resultadoText.setText(String.valueOf("Sua Média: " + resultado + " , Aluno Reprovado"));
                    AlertDialog.Builder dlg = new AlertDialog.Builder(Tela_Pres.this);
                    dlg.setMessage("Resultado: " + resultado + " Aluno Reprovado");
                    dlg.setNeutralButton("Ok", null);
                    dlg.show();


                } else {
                    resultadoText.setText(String.valueOf("Sua Média:  " + resultado + " , Aluno Aprovado"));

                    AlertDialog.Builder dlg = new AlertDialog.Builder(Tela_Pres.this);
                    dlg.setMessage("Resultado:   " + resultado + ", Parabéns Aluno Aprovado");
                    dlg.setNeutralButton("Ok", null);
                    dlg.show();
                }
            }
        };
        atCalcular.execute(AV1, AV2, AV3, AV4);
    }
}

Oi, tudo bem ?

A AsyncTask recebe no generics três parametros, nessa ordem :

  • params
  • progress
  • result

Como a gente pode ver aqui na documentação :
http://developer.android.com/intl/pt-br/reference/android/os/AsyncTask.html

O que você confundiu, são os params que serão pedidos no método execute, você disse que o tipo que está esperando é Integer sendo que você quer um Double, pelo que reparei !

Ai na sua implementação, no doInBackground ele está esperando Double e você está falando na declaração dos params que ele precisa de Integer !

Trocando isso, receio que tudo deva funcionar.

Abraços

Espero ter ajudado

tudo tranquilo, e vs??

eu já testei coloquei Double mesmo assim continua o erro então fiz dessa forma

Double resultado = Double.valueOf(((params[0] * 2) + (params[1] * 2) + (params[2] * 1) + (params[3] * 1)) / 6);

mais ai o execute ainda me retorna erro

Obrigado desde de já amigo!

Jadson,

você abriu dois posts com a mesma dúvida. Isso dificulta para sabemos o que você já fez no seu código.

Outra coisa: em vez de postar o print, coloque o código na sua resposta.

desculpas ai man!

Sem problemas… Coloca o código aí pra gente poder te ajudar mais facilmente.

Boa noite felipe, bom segue o código
.

// Metodo da ação do botão Calcular
public void Calculaar(View view) {
String v1 = av1.getText().toString();
String v2 = av2.getText().toString();
String v3 = av3.getText().toString();
String v4 = av4.getText().toString();

    if (v1.trim().isEmpty() || v2.trim().isEmpty() || v3.trim().isEmpty() || v4.trim().isEmpty()) {
        AlertDialog.Builder dlg = new AlertDialog.Builder(Tela_Pres.this);
        dlg.setMessage("Há Dados em Branco!");
        dlg.setNeutralButton("Ok", null);
        dlg.show();
        return;

    } else {

        double AV1 = Double.parseDouble(av1.getText().toString());
        double AV2 = Double.parseDouble(av2.getText().toString());
        double AV3 = Double.parseDouble(av3.getText().toString());
        double AV4 = Double.parseDouble(av4.getText().toString());

        AsyncTask<Integer, Void, Double> atCalcular = new AsyncTask<Integer, Void, Double>() {

            @Override
            protected Double doInBackground(Integer... params) {
                try {
                    Double resultado = (((params[0] * 2) + (params[1] * 2) + (params[2] * 1) + (params[3] * 1)) / 6);

                    DecimalFormat formato = new DecimalFormat("#.##");
                    resultado = Double.valueOf(formato.format(resultado));

                    return resultado;

                } catch (Exception e) {
                    e.printStackTrace();
                }

                return null;
            }
            @Override
            protected void onPostExecute(Double resultado) {
                super.onPostExecute(resultado);

                if (resultado < 6) {
                    resultadoText.setText(String.valueOf("Sua Média: " + resultado + " , Aluno Reprovado"));
                    AlertDialog.Builder dlg = new AlertDialog.Builder(Tela_Pres.this);
                    dlg.setMessage("Resultado: " + resultado + " Aluno Reprovado");
                    dlg.setNeutralButton("Ok", null);
                    dlg.show();


                } else {
                    resultadoText.setText(String.valueOf("Sua Média:  " + resultado + " , Aluno Aprovado"));

                    AlertDialog.Builder dlg = new AlertDialog.Builder(Tela_Pres.this);
                    dlg.setMessage("Resultado:   " + resultado + ", Parabéns Aluno Aprovado");
                    dlg.setNeutralButton("Ok", null);
                    dlg.show();
                }
            }

        };
        atCalcular.execute(AV1, AV2, AV3, AV4);
    }
}

segue o print dos erros,…