Establecer AlertDialog positivo texto del botón para ser Negrita

Aquí está mi código.

AlertDialog.Builder builder = new AlertDialog.Builder(this); LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); final View vi = inflater.inflate(R.layout.group_dialog_layout,null); builder.setView(vi); TextView txtNewGroupEntry = (TextView) vi.findViewById(R.id.txtGroupRename); if(isNew==true){ builder.setTitle("New Group"); txtNewGroupEntry.setText(R.string.new_group_instruction); } builder.setPositiveButton(R.string.ok_button, null); builder.setNegativeButton(R.string.cancel_button, null); AlertDialog dialog = builder.create(); dialog.show(); Button okButton = dialog.getButton(DialogInterface.BUTTON_POSITIVE); 

Tengo un cuadro de diálogo de alerta con un botón de agregar y un botón de cancelar. Quiero que tanto el texto del botón esté en negrita y cursiva. ¿Cómo puedo hacerlo?

En lugar de configurar el texto del botón para que se "add" , establezca que sea Html.fromHtml("<b><i>add</i></b>")

Así que con su código:

Cambie estas líneas:

 builder.setPositiveButton(R.string.ok_button, null); // and builder.setNegativeButton(R.string.cancel_button, null); 

A estas líneas:

 builder.setPositiveButton(Html.fromHtml("<b><i>" + getString(R.string.ok_button) + "</i><b>"), null); // and builder.setNegativeButton(Html.fromHtml("<b><i>" + getString(R.string.cancel_button) + "</i><b>"), null); 

O

strings.xml modificar las cadenas en el archivo strings.xml .

Así por ejemplo, si sus cadenas se parecían a esto:

 <string name="ok_button">add</string> <string name="cancel_button">cancel</string> 

Usted podría cambiar a esto:

 <string name="ok_button"><b><i>add</i></b></string> <string name="cancel_button"><b><i>cancel</i></b></string> 

pero

Todavía está haciendo referencia a sus recursos de cadenas incorrectamente. En lugar de R.string.ok_button , ya que devuelve un int, tendrías que usar getString(R.string.ok_button)

Así que tendrías que cambiar estas líneas:

 builder.setPositiveButton(R.string.ok_button, null); // and builder.setNegativeButton(R.string.cancel_button, null); 

A estas líneas:

 builder.setPositiveButton(getString(R.string.ok_button), null); // and builder.setNegativeButton(getString(R.string.cancel_button), null); 

Este código de ejemplo le ayudará …

  AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage("message").setTitle("title"); AlertDialog alertDialog = builder.create(); DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { switch (which) { case DialogInterface.BUTTON_POSITIVE: // do work break; case DialogInterface.BUTTON_NEUTRAL: // do work break; case DialogInterface.BUTTON_NEGATIVE: // do work break; default: break; } } }; alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, "Yes", listener); alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "No", listener); alertDialog.setButton(DialogInterface.BUTTON_NEUTRAL, "Cancel", listener); alertDialog.setOnShowListener(new DialogInterface.OnShowListener() { @Override public void onShow(DialogInterface dialog) { AlertDialog alertDialog = (AlertDialog) dialog; Button button = alertDialog.getButton(DialogInterface.BUTTON_POSITIVE); button.setTypeface(Typeface.DEFAULT, Typeface.BOLD | Typeface.ITALIC); button = alertDialog.getButton(DialogInterface.BUTTON_NEGATIVE); button.setTypeface(Typeface.DEFAULT, Typeface.BOLD | Typeface.ITALIC); button = alertDialog.getButton(DialogInterface.BUTTON_NEUTRAL); button.setTypeface(Typeface.DEFAULT, Typeface.BOLD | Typeface.ITALIC); } }); alertDialog.show(); 

Puede acceder a Dialog's buttons Dialog's dentro de onShow() como he mencionado abajo. En el momento de onShow() activación que son capaces de acceder a la interfaz de usuario Yoir diálogo, prueba esto,

 private void showAlertDialog(){ AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setMessage("Dailog Demo!"); builder .setCancelable(false) .setPositiveButton("Yes", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }) .setNegativeButton("No", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }); final AlertDialog alertdialog = builder.create(); alertdialog.setOnShowListener(new OnShowListener() { @Override public void onShow(DialogInterface dialog) { ((Button)alertdialog.getButton(Dialog.BUTTON_POSITIVE)).setTypeface(null, Typeface.BOLD_ITALIC); ((Button)alertdialog.getButton(Dialog.BUTTON_NEGATIVE)).setTypeface(null, Typeface.BOLD_ITALIC); } }); alertdialog.show(); } 
  • AlertDialog con vista personalizada no "redimensionar"
  • DialogFragment - Obtener el ancho del diálogo
  • DialogFragment de Android vs Diálogo
  • Múltiples cuadros de diálogo OK / Cancelar, cómo decir, en onClick (), ¿qué diálogo?
  • Obtener un botón positivo en DialogPreference
  • Dentro de Android Dialog, cómo configurar onActivityResult para startActivityForResult?
  • AndroidRuntimeException: requestFeature () debe ser llamado antes de agregar contenido
  • AlertDialog con el selector
  • Forzar al usuario a seleccionar la opción en el diálogo
  • Error de Android: no se puede agregar ventana - el símbolo nulo no es para una aplicación
  • ¿Cómo puedo ocultar el botón Cancelar en una DialogPreference personalizada en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.