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();
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();
}
}
Deu certo, muito obrigado pela ajuda.
1 curtida
Nem vi que vc já tinha feito, foi mal!
Que bom que deu certo.