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:

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.

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!

  • Validar entrada de diálogo
  • ¿Cómo probar un AlertDialog en Android?
  • Incorporar RatingBar en AlertDialog
  • Cambio de tema de diálogo para cada cuadro de diálogo
  • Cómo hacer una capa transparente sobre el elemento CardIView?
  • Diálogo de ocultar de Android después de tiempo establecido, como un tostado personalizado de intervalo de tiempo
  • Alertdialog en el diseño del material
  • ¿Cómo puedo reutilizar un AlertDialog para Sí / No en Android?
  • AlertDialog de dentro de BroadcastReceiver ?? Se puede hacer?
  • Agregar un oyente a un botón dentro de un alerta de alerta personalizado bloquea mi aplicación
  • Botón único de AlertDialog de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.