2012-10-15 57 views
1

我有一個名爲content的EditText。裏面是一些格式化文本。然後我想通過做看到格式化的文本和HTML之間切換:將文本從EditText轉換爲HTML並返回丟失格式

if(!showHtml) 
    content.setText(Html.fromHtml(content.getText().toString()), BufferType.SPANNABLE); 
else 
    content.setText(Html.toHtml(content.getText())); 

如果格式化的文本是「測試測試」,在HTML出來作爲<p>test <b>test </b></p>這是很好的,但是回去的時候,格式化會丟失,我會得到「測試測試」。

如果格式化文本是「測試測試」,html出現爲<p><b>test</b> test</p>,這是再次正確。但是,返回時得到的文字是「測試測試」。

所以它看起來像是第一個單詞的格式應用到文本的其餘部分(我已經測試了更長的字符串)。

有沒有人遇到過這個,我怎麼能解決這個問題呢?

編輯1它似乎與EditText.setText(),它自動使用可編輯標誌,並完全忽略我的請求Spannable。這可能是問題來自哪裏?

+0

嘗試'content.setText(content.getText());'。 。** toString **將清除所有格式。 –

+0

'Html.fromHtml'接受一個字符串,所以我必須使用toString。此外,在那個特定的部分,我發送它原始的HTML,所以沒有格式化刪除。但謝謝你試圖幫助:) – NickLH

回答

2

我當時很傻。我完全忘記了我有一個TextWatcher修改了應用的樣式。我需要做的就是設置一個標誌,告訴它不要修改樣式,如果它是從html轉換後。

相關問題