Die HTML-Formatierung für TextView
Ich bin ein bisschen verwirrt über die 'Regeln' des, wenn ein TextView-element zeigt den text in der formatierten form oder nicht.
Einen string wie
"There are <i>different ways</i> of coding.\n";
zeigt, ohne jede Formatierung (einschließlich des HTML-codes), wenn ich code
tvMyTextView.setText("There are <i>different ways</i> of coding.\n");
aber wenn ich definieren, der dieselbe Zeichenfolge in strings.xml und dann laden
tvMyTextView.setText(R.strings.TestString);
zeigt er betont.
Noch mehr verwirrt, fühle ich mich, wenn Sie versuchen zum einbetten von URLs in TextView ' s wie hier:
"Click <a href="http://www.poon-world.com">here</a> to switch on the red light.\n";
Unnötig zu sagen, ich habe bereits versucht, die verschiedenen Optionen Eigenschaft von TextView - aber Sie scheinen nicht zu viel von einem Unterschied, es sei denn, ich habe etwas verpasst. In einigen Fällen wird die URL-codiert den text in blauer Farbe und können angeklickt werden, in anderen kann ich sehen, die HTML-Formatierung. In anderen wieder, es ist Farb-codiert und die URL scheint zu sein, kodiert in der text-irgendwie - aber es passiert nichts, wenn ich es auf. In Bezug auf die Einbettung von URLs, die im Gegensatz zu dem anderen Beispiel mit "einfachen" HTML-Formatierung, ich konnte nicht einmal herausfinden, in der Regel so weit, Wann es funktioniert und Wann nicht. Kann mir jemand helfen bei der Aufhebung der Bindung der Knoten in meinem Kopf..
- versuchen Sie, diese <TextView android:linksClickable="true" <----- //andere Eigenschaften />
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eigentlich Aus dem Android-Docs..
Setzt den string-Wert der TextView. TextView akzeptiert keine HTML-artige Formatierung, die Sie tun können, mit text-strings in XML-Ressource-Dateien. Stil Ihr Zeichenfolgen anfügen von android.text.Stil.* Objekte zu einem SpannableString, oder sehen Sie sich die Verfügbaren Ressourcen-Typen-Dokumentation ein Beispiel für die Einstellung von formatiertem text in der XML resource-Datei.
Aber,
Aber aus dem Android-Ressource-String-docs..
Können Sie fügen styling zu Ihrem strings mit HTML-markup. Zum Beispiel:
Unterstützten HTML-Elemente enthalten:
Manchmal möchten Sie möglicherweise erstellen Sie einen text mit Stil-Ressource, wird auch als format-string. Normalerweise, wird das nicht funktionieren, weil die
String.format(String, Object...)
Methode strip alle style-Informationen aus dem string. Der work-around ist das schreiben der HTML-tags mit maskierten Personen, die dann wieder mitfromHtml(String)
nach der Formatierung stattfindet.Und über Ihre URL-Zeichenfolge,...
Schauen Sie auch bei dieser Frage ALSO Setzen TextView text aus html-formatierten string-Ressource in XML
und
Android-String-Ressource
versuchen Sie auch
Folgenden link Für linkify so automatisch website-link zuweisen.
http://developer.android.com/resources/articles/wikinotes-linkify.html
Hinzufügen von ein paar Noten auf meine eigenen Fragen und nach Erhalt der Antworten so weit, ich kann nur sagen, dass es scheint nicht zu sein eine zuverlässige Methode, die überall funktioniert.
In einigen Fällen - nach meiner Erfahrung, wenn eine formatierte URL ist Teil der plain-text und nicht geschlossene tags (wie http://www.poon-world.com , auch nur "Poon-World.com" scheint zu funktionieren in den meisten Fällen) einfach die Einstellung der Eigenschaften der TextView genug zu sein scheint, und die links sind anklickbar. Jedoch, wenn links in HTML eingebettete tags und sollen anklickbar, von einigen text-link, es scheint keinen anderen Weg als zu gehen, mit Html.fromHtml(..).
Aber es gibt auch ein paar spezielle Fälle, die ich nicht erklären kann: in einigen Aktivitäten/layouts, ich bin mit "embedded" - URLs und eingestellt haben, Klicken Sie auf Eigenschaften erwähnt, nicht mit Html.fromHtml .. und überraschung!, ein Klick auf die tatsächlich erstellte links im text in der Tat öffnet sich der browser, aber nur, nachdem Sie Hinzugefügt die folgende Zeile in den code in der OnCreate-Ereignis:
(Ich fand diesen trick in einem anderen thread, Dank an den Autor) Keine Ahnung warum, es scheint so zu sein, wie die string-Ressourcen sind analysiert und ausgewertet von Android. Ich habe gerade erwähnt, dass am Anfang aller, dass ist schon gesagt worden, so dass alle anderen nach Lösungen suchen und stolpert nicht anfangen zu denken, dass er anfängt seinen Verstand zu verlieren - Nein, testen Sie einfach die Ansätze, die hier erwähnt auf dieser Seite und sollte man in der Regel trainieren.