60 votes

Comment mettre une partie du texte en gras en utilisant AlertDialog.setMessage() sous Android ?

Comment mettre une partie du texte en gras lorsque l'on utilise la fonction AlertDialog 's setMessage() ? Ajout de <b> et </b> à mon String ne fonctionne pas.

114voto

noob Points 3962

Vous devez utiliser Html.fromHtml() aussi. Par exemple :

AlertDialog.setMessage(Html.fromHtml("Hello "+"<b>"+"World"+"</b>"));

Mise à jour :
On dirait que Html.fromHtml(String source) a été déprécié dans la dernière version d'Android Nougat. Bien que la dépréciation ne signifie pas que vous devez changer votre code maintenant, mais c'est une bonne pratique de supprimer le code déprécié de votre application dès que possible.
Le remplacement est Html.fromHtml(String source, int flags) . Il suffit d'ajouter un paramètre supplémentaire mentionnant un drapeau.

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
   AlertDialog.setMessage(Html.fromHtml("Hello "+"<b>"+"World"+"</b>", Html.FROM_HTML_MODE_LEGACY));
} else {
   @Suppress("DEPRECATION")
   AlertDialog.setMessage(Html.fromHtml("Hello "+"<b>"+"World"+"</b>"));
}

Pour plus de détails, consultez le site cette réponse .

26voto

elirigobeli Points 1321

Este page décrit comment ajouter le formatage HTML aux chaînes de ressources.

<resources>
    <string name="welcome_messages">Hello, %1$s! You have &lt;b>%2$d new messages&lt;/b>.  
    </string>
</resources>

Et n'oubliez pas d'utiliser : Html.fromHtml

AlertDialog.setMessage(Html.fromHtml(getString(R.string.welcome_messages)));

Cela fonctionne pour moi

1voto

Prajwal W Points 117

Au cas où quelqu'un voudrait ajouter seulement une seule chaîne :

<string name="abouttxt">&lt;b>Enter license key&lt;/b></string>

Ajoutez cette ligne dans votre code Alertdialog.

dialog.setTitle(Html.fromHtml(getString(R.string.abouttxt)))

1voto

Fred Points 546

Aucune de ces solutions n'a fonctionné pour moi, mais je suis obligé d'utiliser une ancienne version de l'API et je ne pouvais donc pas utiliser Html.fromHtml . Pour mettre en gras une partie du texte pour un AlertDialog J'ai dû utiliser un SpannableString .

String msgPart1 = getString(R.string.PartOneOfMessage);
SpannableString msg = new SpannableString(msgPart1 + " " + boldTextString + " " + getString(R.string.PartTwoOfMessage));
msg.setSpan(new StyleSpan(Typeface.BOLD), msgPart1.length() + 1, msgPart1.length() + datumName.length() + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
AlertDialog.setMessage(msg);

Je ne dis pas que c'est la meilleure méthode, mais c'est celle qui a fonctionné pour moi.

0voto

chris Points 9
<string name="abouttxt">"<b>Info</b>\ntexttxtxtxtxt"</string>

cela fonctionne pour moi en xml

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X