Erhalte einen spannbaren String aus EditText

8

Ich habe SpannableString auf EditText eingestellt, jetzt möchte ich diesen Text von EditText bekommen und seine Markup-Informationen bekommen. Ich habe es versucht

%Vor%

, aber es gibt den Index -1 für fett und kursiv, obwohl Text kursiv und fett dargestellt wird.

Bitte helfen Sie.

    
Rahul Chauhan 05.10.2013, 06:21
quelle

1 Antwort

10

Aus dem Code, den Sie gepostet haben, übergeben Sie neue Spannen an spanStr und bitten sie, sie zu finden. Sie müssen einen Verweis auf die Instanzen der tatsächlich verwendeten Bereiche haben. Wenn das nicht möglich ist oder Sie keine Spanne direkt verfolgen möchten, können Sie einfach anrufen getSpans , um alle verwendeten Spannen zu erhalten. Sie können dieses Array dann nach Ihren Wünschen filtern.

Wenn Sie sich nicht besonders für die Spannweiten interessieren, können Sie auch einfach Html.toHtml (spanStr) , um eine HTML-markierte Version zu erhalten.

bearbeiten : um ein Codebeispiel hinzuzufügen

Dies wird alle angewendeten StyleSpans aufnehmen, was Sie wollen.

%Vor%

Hier finden Sie einen Link zu den StyleSpan -Dokumenten.

Um die gewünschten Spannen auszuwählen, wenn Sie verschiedene Spannen zu einer Kollektion / einem Array gemischt haben, können Sie instanceof verwenden, um herauszufinden, welche Art von Spannen Sie haben. Dieser Ausschnitt überprüft, ob ein bestimmter Bereich mSpan eine Instanz von StyleSpan ist und druckt dann seine Start- / End-Indizes und -Flags. Die Flags sind Konstanten, die beschreiben, wie sich die Bereichsenden verhalten, wie z. B .: Beinhalten sie den Text an den Start- / Endindizes und nur an Text, der an einem Index innerhalb des Start- / Endbereichs eingegeben wurde, und wenden ihn an.)

%Vor%     
KMDev 05.10.2013, 06:37
quelle

Tags und Links