Saltar al contenido

Cómo cambiar el color del texto en AlertDialog

Al fin luego de mucho luchar pudimos dar con el arreglo de este atascamiento que tantos lectores de nuestro sitio web tienen. Si deseas compartir algún detalle no dejes de aportar tu información.

Solución:

Solo para cambiar el color de la fuente, intente esto:

    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle(Html.fromHtml("This is a test"));
    builder.setPositiveButton(Html.fromHtml("Yes"), new DialogInterface.OnClickListener() 
        public void onClick(DialogInterface dialog, int arg1) 
            Log.e(LOG_TAG, "Yes");
        
    );
    builder.setNegativeButton(Html.fromHtml("No"), new DialogInterface.OnClickListener() 
        public void onClick(DialogInterface dialog, int arg1) 
            Log.e(LOG_TAG, "No");
        
    );
    builder.create();
    builder.show();

resultado:

ingrese la descripción de la imagen aquí


Para cambiar el color de la fuente y el color de fondo del botón, intente esto:

    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage(Html.fromHtml("This is a test"));
    builder.setCancelable(false);
    builder.setNegativeButton("No", new DialogInterface.OnClickListener() 
        public void onClick(DialogInterface dialog, int which) 
        
    );
    builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() 
        public void onClick(DialogInterface dialog, int which) 
        
    );
    AlertDialog alert = builder.create();
    alert.show();
    Button nbutton = alert.getButton(DialogInterface.BUTTON_NEGATIVE);
    //Set negative button background
    nbutton.setBackgroundColor(Color.MAGENTA);
    //Set negative button text color
    nbutton.setTextColor(Color.YELLOW);
    Button pbutton = alert.getButton(DialogInterface.BUTTON_POSITIVE);
    //Set positive button background
    pbutton.setBackgroundColor(Color.YELLOW);
    //Set positive button text color
    pbutton.setTextColor(Color.MAGENTA);

Resultado:

Resultado:


Si desea cambiar el color del divisor, intente esto:

        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Test Title");
        builder.setMessage(Html.fromHtml("This is a test"));
        builder.setCancelable(false);
        builder.setNegativeButton("No", new DialogInterface.OnClickListener() 
            public void onClick(DialogInterface dialog, int which) 
            
        );
        builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() 
            public void onClick(DialogInterface dialog, int which) 
            
        );
        AlertDialog dialog = builder.create();
        dialog.show();
        try 
            Resources resources = dialog.getContext().getResources();
            int alertTitleId = resources.getIdentifier("alertTitle", "id", "android");
            TextView alertTitle = (TextView) dialog.getWindow().getDecorView().findViewById(alertTitleId);
            alertTitle.setTextColor(Color.MAGENTA); // change title text color

            int titleDividerId = resources.getIdentifier("titleDivider", "id", "android");
            View titleDivider = dialog.getWindow().getDecorView().findViewById(titleDividerId);
            titleDivider.setBackgroundColor(Color.YELLOW); // change divider color
         catch (Exception ex) 
            ex.printStackTrace();
        
        Button nbutton = dialog.getButton(DialogInterface.BUTTON_NEGATIVE);
        //Set negative button background
        nbutton.setBackgroundColor(Color.MAGENTA);
        //Set negative button text color
        nbutton.setTextColor(Color.YELLOW);
        Button pbutton = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
        //Set positive button background
        pbutton.setBackgroundColor(Color.YELLOW);
        //Set positive button text color
        pbutton.setTextColor(Color.MAGENTA);

Este es mi código de muestra, pero si desea cambiar el color del divisor, considere que la parte del código comienza con “int titleDividerId”.

Resultado:

Este es el resultado del código.


Si desea personalizar mucho el AlertDialog. Por ejemplo, al agregar algunas casillas de verificación con un color de fondo personalizado, use este enfoque:

AlertDialog.Builder alert = new AlertDialog.Builder(this);
        LinearLayout mainLayout       = new LinearLayout(this);
        mainLayout.setOrientation(LinearLayout.VERTICAL);

        LinearLayout layout1       = new LinearLayout(this);
        layout1.setOrientation(LinearLayout.HORIZONTAL);
        CheckBox cb1 = new CheckBox(getApplicationContext());
        cb1.setText("Easy");
        layout1.addView(cb1);
        layout1.setBackgroundColor(Color.BLUE);
        layout1.setMinimumHeight(50);

        LinearLayout layout2       = new LinearLayout(this);
        layout2.setOrientation(LinearLayout.HORIZONTAL);
        layout2.addView(new TextView(this));
        CheckBox cb2 = new CheckBox(getApplicationContext());
        cb2.setText("Normal");
        layout2.addView(cb2);
        layout2.setBackgroundColor(Color.CYAN);
        layout2.setMinimumHeight(50);

        LinearLayout layout3       = new LinearLayout(this);
        layout3.setOrientation(LinearLayout.HORIZONTAL);
        CheckBox cb3 = new CheckBox(getApplicationContext());
        cb3.setText("Hard");
        layout3.addView(cb3);
        layout3.setBackgroundColor(Color.GREEN);
        layout3.setMinimumHeight(50);

        mainLayout.addView(layout1);
        mainLayout.addView(layout2);
        mainLayout.addView(layout3);
        alert.setTitle("Custom alert demo");
        alert.setView(mainLayout);
        alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() 

            @Override
            public void onClick(DialogInterface dialog, int which) 
                dialog.cancel();
            
        );
        alert.setPositiveButton("Done", new DialogInterface.OnClickListener() 
            @Override
            public void onClick(DialogInterface dialog, int which) 
                Toast.makeText(getBaseContext(), "done", Toast.LENGTH_SHORT).show();
            
        );

        alert.show();

El resultado:

El resultado

En primer lugar, creé un diseño principal (vertical) como se ve en el código. Luego, para cada una de las casillas de verificación creé un diseño horizontal. En este caso, puedes jugar con los colores y las fuentes de los elementos (casillas de verificación, elementos, etc.). Espero que ayude.

Después de crear su diálogo:

AlertDialog dialog = builder.create();
dialog.show();
Button buttonPositive = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
buttonPositive.setTextColor(ContextCompat.getColor(this, R.color.green));
Button buttonNegative = dialog.getButton(DialogInterface.BUTTON_NEGATIVE);
buttonNegative.setTextColor(ContextCompat.getColor(this, R.color.red));

El color del texto se toma de la colorAccent valor establecido en styles.xml (según el estilo que establezcas en tu actividad).

Acuérdate de que tienes concesión de añadir un criterio certero si diste con el resultado.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *