Cómo cambiar textcolor en AlertDialog

AlertDialog

¿Cómo cambiar el textcolor en un AlertDialog?

@color/black_text 

Esto cambia el color del título solamente.

 ad = new AlertDialog.Builder((new ContextThemeWrapper(context, R.style.DialogTheme))); ad.setTitle(R.string.my_activ_remove_title_dialog); ad.setPositiveButton(R.string.my_activ_remove_dialog, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int arg1) { content.remove(position); notifyItemRemoved(position); notifyItemRangeChanged(position, content.size()); } }); ad.setNegativeButton(R.string.my_activ_cancel_remove_dialog, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int arg1) { } }); 

Alerd Dialog v2

Para cambiar solo 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:

enter image description here


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, agregando algunas casillas de verificación con 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, puede jugar con los colores y las fonts 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));