372 Stimmen

wie man einen bestimmten Text in TextView BOLD macht

Ich weiß nicht, wie man einen bestimmten Text auf TextView BOLD werden lassen kann.

Es ist wie folgt

txtResult.setText(id+" "+name);

Ich möchte, dass die Ausgabe wie folgt aussieht:

1111 neil

id y name sind Variablen, deren Wert ich aus der Datenbank abgerufen habe, und ich möchte die id zu fett, sondern nur die id so dass die name nicht beeinträchtigt wird, habe ich keine Ahnung, wie man das macht.

2voto

neens Punkte 95

Wenn die Position des fettgedruckten Textes fest ist (z.B. wenn er am Anfang der textView steht), dann verwenden Sie zwei verschiedene textViews mit demselben Hintergrund. Dann können Sie die andere textView's textStyle als fett machen.

Dies erfordert den doppelten Speicherplatz im Vergleich zu einer einzelnen Textansicht, aber die Geschwindigkeit wird erhöht.

2voto

Yıldırım Punkte 697

Ihre String-Ressource

<resources>
   <string name="your_string_resource_name">This is normal text<![CDATA[<b> but this is bold </b>]]> and <![CDATA[<u> but this is underline text</u>]]></string>
</resources> 

Ihre Java-Klasse

yourtextView.setText(getString(R.string.your_string_resource_name));

2voto

Ich habe einen Weg gefunden, um die Lokalisierung in mehreren Sprachen zu handhaben, es ist langweilig, aber es funktioniert:

Auf Englisch:

Es gibt keine Zahlungen registriert

Auf Spanisch:

Kein Heu pagos registriert.

Sie müssen 3 Strings erstellen

Englisch:

<string name="start_string">There are no</string>
<string name="middle_string">payments</string>
<string name="end_string">registered.</string>
<string name="string_format" translatable="false">%1$s %2$s %3$s</string>

Spanisch:

<string name="start_string">No hay</string>
<string name="middle_string">pagos</string>
<string name="end_string">registrados</string>

Jetzt können Sie dies tun:

val startSpanPosition = getString(R.string.start_string).length
val endSpanPosition = startSpanPosition + getString(R.string.middle_string).length
val mySpannableString = SpannableStringBuilder(String.format(getString(R.string.string_format),
        getString(R.string.start_string), getString(R.string.middle_string))), getString(R.string.end_string)))

mySpannableString.setSpan(StyleSpan(Typeface.BOLD), spanStartPosition, endSpanPosition, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)

1voto

Abdul Basit Rishi Punkte 1751

Einfaches Beispiel

In Ihrer strings.xml

<string name="str_privacy_policy">This is our Privacy Policy.</string>

wenn Sie speziell "Privacy Policy" fett drucken möchten, setzen Sie die Zeichenfolge zwischen die fett gedruckten Tags.

Wie diese

<string name="str_privacy_policy">This is our <b>Privacy Policy.</b></string>

Das Ergebnis wäre

Dies ist unser Datenschutzbestimmungen

1voto

logcat Punkte 3354

Für den Fall, dass jemand Data Binding verwendet. Wir können Binding Adapter wie folgt definieren

@BindingAdapter("html")
fun setHtml(view: TextView, html: String) {
    view.setText(HtmlCompat.fromHtml(html, HtmlCompat.FROM_HTML_MODE_LEGACY))
}

Dann können wir es auf eine TextView anwenden

app:html="@{@string/bold_text}"

wobei bold_text für

<string name="bold_text"><![CDATA[Part of text is <b>bold</b>]]></string>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X