Ein ListView
in meiner Anwendung hat viele Textelemente , wie name
, experience
, date of joining
usw. Ich möchte nur machen name
fett. Alle Zeichenfolgenelemente werden in einem einzigen Element zusammengefasst TextView
.
mein XML:
<ImageView
android:id="@+id/logo"
android:layout_width="55dp"
android:layout_height="55dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_marginTop="15dp" >
</ImageView>
<TextView
android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/logo"
android:padding="5dp"
android:textSize="12dp" >
</TextView>
Mein Code zum Festlegen der Textansicht des ListView-Elements:
holder.text.setText(name + "\n" + expirience + " " + dateOfJoininf);
android
android-listview
Stubenfliege
quelle
quelle
Antworten:
Angenommen, Sie haben einen
TextView
Anrufetx
. Sie würden dann den folgenden Code verwenden:quelle
var bss = new StyleSpan(Android.Graphics.TypefaceStyle.Bold);
etx.TextFormatted = sb;
Basierend auf der Antwort von Imran Rana ist hier eine generische, wiederverwendbare Methode, wenn Sie
StyleSpan
s auf mehrereTextView
s anwenden müssen , mit Unterstützung für mehrere Sprachen (wobei Indizes variabel sind):Verwenden Sie es
Activity
so:strings.xml
Ergebnis:
Willkommen bei CompanyName
quelle
Die hier angegebenen Antworten sind korrekt, können jedoch nicht in einer Schleife aufgerufen werden, da das
StyleSpan
Objekt ein einzelner zusammenhängender Bereich ist (kein Stil, der auf mehrere Bereiche angewendet werden kann). Wenn SiesetSpan
mehrmals mit demselben FettdruckStyleSpan
aufrufen, wird ein Fettdruckbereich erstellt und nur im übergeordneten Bereich verschoben.In meinem Fall (Anzeigen von Suchergebnissen) musste ich dafür sorgen, dass alle Instanzen aller Suchschlüsselwörter fett angezeigt werden. Das habe ich getan:
Beachten Sie, dass der obige Code nicht intelligent genug ist, um doppelte Fettdrucke zu überspringen, wenn ein Schlüsselwort eine Teilzeichenfolge des anderen ist. Zum Beispiel, wenn Sie nach "Fish fi" suchen in "Fische im fistigen Meer" suchen , wird der "Fisch" einmal fett und dann der Teil "fi" fett gedruckt . Das Gute ist, dass es zwar ineffizient und etwas unerwünscht ist, aber keinen visuellen Nachteil hat, da Ihr angezeigtes Ergebnis immer noch so aussieht
Fische es in der fi sty Sea
quelle
Sie können dies mit Kotlin und der
buildSpannedString
Erweiterungsfunktion von tuncore-ktx
quelle
Wenn Sie die Länge des Textes vor dem Textabschnitt, den Sie fett machen möchten, nicht genau kennen oder auch nicht wissen, wie lang der Text fett sein soll, können Sie problemlos HTML-Tags wie die folgenden verwenden:
quelle
Erweiterung der Antwort von Frieder auf die Unempfindlichkeit gegenüber Groß- und Kleinschreibung.
quelle
Wenn Sie die Annotation @ srings / your_string verwenden, greifen Sie auf die Datei strings.xml zu und verwenden Sie das
<b></b>
Tag in dem gewünschten Textteil.Beispiel:
quelle
Ich empfehle, die Datei strings.xml mit CDATA zu verwenden
Dann in der Java-Datei:
quelle