web-dev-qa-db-fra.com

Comment définir une partie du texte en gras lors de l'utilisation d'AlertDialog.setMessage () dans Android?

Comment définir une partie du texte en gras lorsque vous utilisez setMessage() de AlertDialog? Ajouter <b> et </b> à mon String ne fonctionne pas.

48
SuitUp

Vous devez également utiliser Html.fromHtml(). Par exemple:

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

Mise à jour:
On dirait que Html.fromHtml(String source) a été déconseillé dans la dernière version Android Nougat version. modifiez votre code maintenant, mais il est recommandé de supprimer le code obsolète de votre application dès que possible.
Le remplacement est Html.fromHtml(String source, int flags) . Il vous suffit d'ajouter un paramètre supplémentaire mentionnant un indicateur.

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, jetez un œil à cette réponse .

94
noob

Cette page décrit comment ajouter une mise en forme 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)));

Ça marche pour moi

20
elirigobeli
<string name="abouttxt">"<b>Info</b>\ntexttxtxtxtxt"</string>

cela fonctionne pour moi en xml

0
chris

Dans le cas où quelqu'un souhaite ajouter 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)))
0
Prajwal W