Antes de esto he utilizado un DialogBuilder para crear AlertDialog como este

AlertDialog.Builder builder = new AlertDialog.Builder(context);
...
...
AlertDialog dialog = builder.create();

¿Cómo puedo construir el nuevo AppCompatDialog desde un cuadro de diálogo generador, o hay otra nueva forma equivalente a hacer eso?

OriginalEl autor Neoh | 2015-04-22

4 Comentarios

  1. 19

    Acaba de encontrar la solución. Me debe importar

    import android.support.v7.app.AlertDialog;

    y, a continuación, AppCompatDialog dialog = builder.create() de trabajo.

    OriginalEl autor Neoh

  2. 16

    Si quieres usar un AlertDialog, acaba de importar el nuevo supprt v 22.1 y utilizar un código como este (prestar atención a la importación):

    import android.support.v7.app.AlertDialog
    
    AlertDialog.Builder builder =
           new AlertDialog.Builder(this, R.style.AppCompatAlertDialogStyle);
                builder.setTitle("Dialog");
                builder.setMessage("Lorem ipsum dolor ....");
                builder.setPositiveButton("OK", null);
                builder.setNegativeButton("Cancel", null);
                builder.show();

    Si

    cuando se utiliza builder.setView(v) para appcompatdialog el tamaño de cuadro de diálogo es, como máximo, en lugar de simplemente envolver el componente. aquí v es un recyclerview, que tiene la variable no. de los elementos
    ¿qué debo hacer para que el tamaño de diálogo cambios de acuerdo no. de recyclerview elementos ?

    OriginalEl autor Gabriele Mariotti

  3. 6

    android.support.v7.app.AppCompatDialog es directa de los padres de la clase de android.support.v7.app.AlertDialog, dondequiera que usted puede utilizar android.support.v7.app.AlertDialog, puede utilizar android.support.v7.app.AppCompatDialog.

    OriginalEl autor SilentKnight

  4. 4

    Me acabo de mudar a todos mis android.app.AlertDialog a android.support.v7.app.AlertDialog.

    Después de algunas pruebas con 4.X emuladores he encontrado que para un diálogo sencillo, basta con cambiar la importación. Pero para la elección múltiple diálogos, además, lo que usted necesita hacer AppCompatDialog alert = builder.create(); para obtener el Material de estilo de Diseño de cuadros de diálogo (en 4.X).

    Para ser claros, si usted tiene un sencillo cuadro de diálogo como este:

    import android.support.v7.app.AlertDialog;
    
    AlertDialog.Builder builder = new AlertDialog.Builder(ctx);
    builder.setIcon(resId)
    .setTitle(title)
    .setMessage(msg)
    .setCancelable(isCalncelable)
    .setPositiveButton(btn1, listener1);
    AlertDialog alert = builder.create();
    alert.show();

    Cambio de la importación será suficiente 🙂

    Pero para un multi elección de diálogo, usted necesita usar AppCompatDialog como este:

    import android.support.v7.app.AlertDialog;
    import android.support.v7.app.AppCompatDialog;
    
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setTitle("Choose something")
    .setPositiveButton(...)
    .setMultiChoiceItems(mStringArray, mSelectedArray, SomeFragment.this);
    AppCompatDialog alert = builder.create();
    alert.show();

    Luego de recibir el bonito Diseño de Material de aspecto de 4.X dispositivos.

    Ahora la parte divertida!

    Para un multi elección de diálogo, en un 5.X dispositivo, la versión nativa (android.app.AlertDialog) muestra las casillas de verificación en la izquierda, un correcto seguimiento de la Material especificaciones de Diseño. Pero si usas el apoyo a los diálogos, a continuación, las cajas de control aparecerá en la derecho. WTF!

    En el largo plazo, como Android 5+ ganancias de cuota de mercado, usted va a querer volver a los nativos de los diálogos.

    OriginalEl autor Albert Vila Calvo

Dejar respuesta

Please enter your comment!
Please enter your name here