207 Stimmen

TextView-Text aus html-formatierter String-Ressource in XML setzen

Ich habe einige feste Strings in meinem strings.xml etwa so:

<resources>
    <string name="somestring">
        <B>Title</B><BR/>
        Content
    </string>
</resources>

und in meinem Layout habe ich eine TextView die ich mit der html-formatierten Zeichenfolge füllen möchte.

<TextView android:id="@+id/formattedtext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/htmlstring"/>

Wenn ich dies tue, wird der Inhalt von formattedtext ist nur der Inhalt von somestring von allen html-Tags befreit und somit unformatiert.

Ich weiß, dass es möglich ist, den formatierten Text programmatisch festzulegen mit

.setText(Html.fromHtml(somestring));

weil ich dies in anderen Teilen meines Programms verwende, wo es wie erwartet funktioniert.

Um diese Funktion aufzurufen, benötige ich ein Activity aber im Moment ist mein Layout nur eine einfache mehr oder weniger statische Ansicht in einfachem XML, und ich würde es lieber so belassen, um mir den Aufwand zu ersparen, eine Activity nur um einen Text einzustellen.

Übersehe ich etwas Offensichtliches? Ist es überhaupt nicht möglich? Jede Hilfe oder Umgehungslösung ist willkommen!

Edit: Ich habe gerade ein paar Dinge ausprobiert und es scheint, dass die HTML-Formatierung in xml einige Einschränkungen hat:

  • Tags müssen kleingeschrieben werden

  • einige Tags, die erwähnt werden aquí nicht funktionieren, z.B. <br/> (es ist möglich, die \n stattdessen)

5voto

Dishant Kawatra Punkte 588
  String termsOfCondition="<font color=#cc0029>Terms of Use </font>";
  String commma="<font color=#000000>, </font>";
  String privacyPolicy="<font color=#cc0029>Privacy Policy </font>";
  Spanned text=Html.fromHtml("I am of legal age and I have read, understood, agreed and accepted the "+termsOfCondition+commma+privacyPolicy);
        secondCheckBox.setText(text);

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