[RESOLVIDO] Como cancelar o AlertDialog com cliques em cima do dialog (Inside)?

3 respostas Resolvido
javaandroid
Renan_Nogueira

Estou criando um AlertDialog no Android Studio e preciso que ele cancele ao clicar na parte de dentro.
Verifiquei que só possui um método para cliques do lado de fora do dialog.(setCanceledOnTouchOutside()).
Vi que existe a possibilidade de adicionar um botão, porem gostaria que o cancelamento ocorresse com cliques em toda a área do dialog.

O código esta da seguinte forma.

AlertDialog dialog = new AlertDialog.Builder(this)
            .setView(getLayoutInflater().inflate(R.layout.activity_cronometrar, null))
            .create();
    dialog.setCanceledOnTouchOutside(false);
    dialog.setCancelable(true);
    dialog.show();

3 Respostas

rodriguesabner
Solucao aceita

Cria um dialog personalizado, vc cria um layout pra ele (com os textos, botões e tal…) e depois só dá a ação determinada, exemplo:

private Dialog seuDialog;

    private void openDialog() {
        if (seuDialog== null) {
            final AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setCancelable(false);

            View itemView = getLayoutInflater().inflate(R.layout.algum_layout, null);
            builder.setView(itemView);

            Button mCancelarBtn = itemView.findViewById(R.id.cancelBtn);

            mCancelarBtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    seuDialog.dismiss();
                }
            });

            seuDialog= builder.create();
            seuDialog.show();
        } else {
            seuDialog.show();
        }

    }
Renan_Nogueira

Deu certo, muito obrigado pela ajuda.

rodriguesabner

Nem vi que vc já tinha feito, foi mal!

Que bom que deu certo.

Criado 26 de fevereiro de 2020
Ultima resposta 26 de fev. de 2020
Respostas 3
Participantes 2