builder.setInverseBackgroundForced (true) no funciona
Tengo en mi código setInverseBackgroundForced establecido en true, pero no parece funcionar. El código produce texto blanco sobre un fondo oscuro.
Aquí está mi código de constructor:
- Android: cuadro de diálogo sin sombra alrededor de él
- Cómo actualizar la matriz de elementos en una lista AlertDialog construida con AlertDialog.builder después de la creación
- Android AlertDialog - Color de fondo del encabezado
- Los hipervínculos de Android en TextView en AlertDialog personalizado no se pueden hacer clic
- ¿Por qué AlertDialog.Builder (Context context) sólo acepta Actividad como parámetro?
public class test { private void createMyLocationDisabledAlert() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Title") .setInverseBackgroundForced(true) .setMessage( "my message") .setCancelable(false) .setPositiveButton("Options", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { showOptions(); } }); builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }); AlertDialog alert = builder.create(); alert.show(); } }
¿Qué podría estar haciendo mal? He intentado la llamada del método en diversas posiciones del bloque de código pero para no resolver.
- "Evite pasar null como la raíz de vista" advertencia al inflar vista para su uso por AlertDialog
- ¿Cómo cierro AlertDialog cuando hago clic en el elemento ListView
- Atributos de estilo de estilo personalizado AlertDialog
- Diálogo de alerta de Android: cómo ocultar el botón Aceptar después de presionarlo
- Caja de AlertDialog de Android WindowManager $ Problema de BadTokenException
- AlertDialog para envolver su contenido
- Android - Actualizar datos en un AlertDialog?
- Cómo utilizar setMultiChoiceItems () con un AlertDialog personalizado que utiliza un arrayadapter de eficiencia?
Utilice una clase de diálogo personalizado que expanda DialogFragment y utilícela para mostrar AlertDialog.
Ejemplo:
public class CustomAlertDialog extends DialogFragment { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Title") .setInverseBackgroundForced(true) .setMessage("my message") .setCancelable(false) .setPositiveButton( "Options", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { showOptions(); } }); builder.setNegativeButton( "Cancel", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }); AlertDialog alert = builder.create(); return alert; } } public class test { private void createMyLocationDisabledAlert() { new CustomAlertDialog().show(getSupportFragmentManager(), Constants.FragmentTagSearch); } }
Nota: Yo estaba usando la biblioteca de soporte para la compatibilidad, de ahí el uso de getSupportFragmentManager()
.
Yo también afronto el mismo problema hoy. Y como están las cosas hoy en día, el documento de Android dice que la API setInverseBackgroundForced()
está obsoleta y recomienda al desarrollador que especifique el fondo de la ventana utilizando el tema de diálogo de alerta.
Nota: La desactivación ideal no debe detener la funcionalidad de trabajar.
Dicho esto, no quería investigar por qué no está funcionando hoy y cambió mi enfoque para hacer las cosas la manera más limpia y recomendada por documentos Android. Y es algo como el siguiente código:
private final int DIALOG_THEME_STYLE = android.support.v7.appcompat.R.style.Base_Theme_AppCompat_Dialog_MinWidth; AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this, DIALOG_THEME_STYLE);
¡Espero que ayude!