Obter retorno de AlertDialog.Builder

2 respostas
Heartbreaker

Gostaria de fazer uma pergunta para o usuario e em cima da resposta tomar uma ação, mas como posso obter um retorno usando o AlertDialog.Builder se os unicos jeitos de obter sua ações é dentro do DialogInterface.OnClickListener.onClick() que, mesmo que não seja implementado dentro da classe interna anônima (que ficaria bem mais dificil manter o contexto), tem void como retorno. A unica coisa que eu consigo lá e saber qual botao foi apertado…
Seria muito bom se tivesse algo na variavel do AlertDialog.Builder que me disesse qual botão foi apertado.
Alguma sugestão/solução?
Obrigado.

2 Respostas

fabriciov

pode passar uma interface para a classe que possui a implementação do DialogAlert

public interface  IDialogListener{

public void onAfirmative();
public void onNegative();

}


IDialogListener mIDialogListener = new IDialogListener(){

@Override
public void onAfirmative(){

}

@Override
public void onNegative(){

}

}

protected void showAlertDialog(){

//implementation

alertDialogBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog,
                                    int which) {
                                mIDialogListener.onAfirmative();
                            });

alertDialogBuilder.setNegativeButton("OK", new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog,
                                    int which) {
                                mIDialogListener.onNegative();
                            });

//implementation
}
Heartbreaker

Que lindo. Obrigado.

Criado 8 de junho de 2013
Ultima resposta 10 de jun. de 2013
Respostas 2
Participantes 2