Cierre de un cuadro de diálogo de alerta personalizada al hacer clic en el botón
Tengo problemas para cerrar mi cuadro de diálogo de alerta. Estoy utilizando un inflador de diseño para hacer el diálogo, por lo que no estoy seguro de cómo iba a ir sobre el cierre de la cosa después de que haya terminado con él. El código está abajo:
AlertDialog.Builder dialog = new AlertDialog.Builder(AddData.this); DialogInterface dia = new DialogInterface(); //Create a custom layout for the dialog box LayoutInflater inflater = (LayoutInflater)AddData.this.getSystemService(LAYOUT_INFLATER_SERVICE); View layout = inflater.inflate(R.layout.add_rep_1_set, parent, false); TextView title = (TextView)layout.findViewById(R.id.rep_1_title); Button add_item = (Button)layout.findViewById(R.id.add_button); add_item.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //Need this to close the alert dialog box } }); title.setText(workout_items[position]); dialog.setView(layout); dialog.show();
No puedo llamar al final, porque cierra el listview de que se inicia el diálogo de alerta y las llamadas dialog.dismiss no están disponibles para mí.
- Validar entrada de diálogo
- Cómo crear AppCompatDialog de AlertDialog.Builder o equivalente?
- Configurar la barra de título de AlertBox Color de fondo
- ¿Cómo cierro AlertDialog cuando hago clic en el elemento ListView
- AlertDialog vs AlertDialog.Builder
¿Qué crees que debo hacer para arreglar esto?
- Cuadro de diálogo de alerta personalizado obtener relleno no deseado
- Android: ¿Cómo puedo recuperar Edittext.getText () en AlertDialog personalizado?
- Cómo alinear el centro de diálogo personalizado en android?
- Cambiar tamaño de fuente en un AlertDialog
- Los botones AlertDialog siempre cierran el cuadro de diálogo una vez que se hace clic
- Alertdialog en el diseño del material
- Termine el diálogo y la actividad
- ¿Cómo eliminar la vista de los padres del niño? androide
AlertDialog.Builder dialog = new AlertDialog.Builder(AddData.this); DialogInterface dia = new DialogInterface(); //Create a custom layout for the dialog box LayoutInflater inflater = (LayoutInflater)AddData.this.getSystemService(LAYOUT_INFLATER_SERVICE); View layout = inflater.inflate(R.layout.add_rep_1_set, parent, false); TextView title = (TextView)layout.findViewById(R.id.rep_1_title); Button add_item = (Button)layout.findViewById(R.id.add_button); title.setText(workout_items[position]); dialog.setView(layout); AlertDialog alertDialog = dialog.create(); add_item.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { alertDialog.dismiss(); } }); alertDialog.show();
Hazlo asi,
add_item.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { dialog.dismiss(); } });
Prueba esto:
AlertDialog.Builder builder = new AlertDialog.Builder(this); LayoutInflater inflater = getLayoutInflater(); View dialogView = inflater.inflate(R.layout.brush_opts_dialog,null); builder.setView(dialogView); closeBtn = (Button)dialogView.findViewById(R.id.close_btn); final AlertDialog dialog = builder.create(); closeBtn .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dialog.dismiss(); } }); dialog.show();
Debería usar el AlertDialog.Builder para "construir" el propio Diálogo de Alertas. A continuación, llame al método create () en el objeto AlertDialog.Builder. Este método devuelve un objeto AlertDialog, que le permite llamar a dismiss ().
No debería tener que crearlo varias veces ni utilizar ningún objeto DialogInterface. Esto funciona para mí. Dejame saber como te va.
He modificado tu código plz comprobar ..
AlertDialog.Builder dialog = new AlertDialog.Builder(AddData.this); DialogInterface dia = new DialogInterface(); //Create a custom layout for the dialog box LayoutInflater inflater = (LayoutInflater)AddData.this.getSystemService(LAYOUT_INFLATER_SERVICE); View layout = inflater.inflate(R.layout.add_rep_1_set, parent, false); TextView title = (TextView)layout.findViewById(R.id.rep_1_title); Button add_item = (Button)layout.findViewById(R.id.add_button); final AlertDialog Dial = alertDialog.create(); title.setText(workout_items[position]); Dial.setView(layout); AlertDialog alertDialog = dialog.create(); add_item.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Dial.dismiss(); } }); Dial.show();
Recien agregado
Final AlertDialog Dial = alertDialog.create (); Y cambiar dialog.setView (layout); A Dial.setView (diseño);
Ahora solo llama a Dial.dismiss (); En el oyente onclick .. funciona bien para mí.
Intente dialog.cancel (); En su oyente onclick. Deberia de funcionar.
Es necesario implementar DialogInterface.OnClickListener en lugar de View.OnClickListener. Entonces dialog.dismiss () estará disponible.
new DialogInterface.OnClickListener(){ public void onClick(DialogInterface dialog, int which){ dialog.dismiss(); } }
- Android: escuchar el cambio de Orientación?
- Android: tener autoridad de proveedor en el proyecto de la aplicación