2013-04-03 1 views
0

Я использую SpannableString для стилизации текста в качестве EditText используя нижеAndroid Html.toHtml (editText.getText()) возвращает слишком много HTML-тегов

str.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), selectionStart, selectionEnd, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
str.setSpan(new StyleSpan(android.graphics.Typeface.ITALIC), selectionStart, selectionEnd, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
    str.setSpan(new UnderlineSpan(), selectionStart, selectionEnd, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 

Что делает стилизованный текст правильно, как показано ниже привета * * привет, как это ** Йиу

привет - нормальный

привет - жирный

как есть - полужирный + курсив

Йиу - полужирный + курсив + подчеркивание

Но когда я Html.toHtml(editText.getText()) возвращается

<p><font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3">h</font></font></font></font></font></font></font></font></font></font></font></font></font> 
</font></font></font></font></font> 
<font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3">i</font></font></font></font></font></font></font></font></font></font></font></font> 
<font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3"> 
</font></font></font></font></font></font> 
<font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3"><b><font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3">h</font></font></font></font></font></font></b></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font><font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3"><font color ="#000000"> 
<font size ="3"><font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3"><b><font color ="#000000"> 
<font size ="3"><font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3">o</font></font></font></font></font></font></b></font></font></font></font></font></font></font></font></font></font></font></font><font color ="#000000"><font size ="3"><font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3"><b><font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3"><font color ="#000000"><font size ="3">w</font></font></font></font></font></font></b></font></font></font></font></font></font><b><font color ="#000000"><font size ="3"><font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3"> </font></font></font></font></font></font></b><font color ="#000000"><font size ="3"><font size ="3"> 
<font color ="#000000"><font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3"><font size ="3"> 
<font color ="#000000"><font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3"><font size ="3"> 
<font color ="#000000"><font color ="#000000"> 
<font size ="3"><b><font color ="#000000"> 
<font size ="3"><i><font size ="3"> 
<font color ="#000000"><font color ="#000000"> 
<font size ="3">a</font></font></font></font></i></font></font></b></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font><font color ="#000000"><font size ="3"> 
<font size ="3"><font color ="#000000"> 
<font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3"> 
<font size ="3"><font color ="#000000"> 
<font color ="#000000"><font size ="3"><b><font color ="#000000"><font size ="3"><i><font size ="3"><font color ="#000000"> 
<font color ="#000000"><font size ="3">r</font></font></font></font></i></font></font></b></font></font></font></font></font></font></font></font></font></font></font></font><font color ="#000000"><font size ="3"> 
<font size ="3"> 
<font color ="#000000"><font color ="#000000"> 
<font size ="3"><b><font color ="#000000"> 
<font size ="3"><i><font size ="3"> 
<font color ="#000000"><font color ="#000000"> 
<font size ="3">e</font></font></font></font></i></font></font></b></font></font></font></font></font></font><b><font color ="#000000"> 
<font size ="3"><i><font size ="3"><font color ="#000000"> 
<font color ="#000000"><font size ="3"> </font></font></font></font></i></font></font></b><font color ="#000000"><font size ="3"><font size ="3"> 
<font color ="#000000"><font color ="#000000"><font size ="3"> 
<font color ="#000000"><font size ="3"><font size ="3"> 
<font color ="#000000"><font color ="#000000"> 
<font size ="3"><b><font color ="#000000"> 
<font size ="3"><i><font size ="3"> 
<font color ="#000000"><u><font color ="#000000"><font size ="3">y</font></font></u></font></font></i></font></font></b></font></font></font></font></font></font></font></font></font></font></font></font><font color ="#000000"> 
<font size ="3"><font size ="3"><font color ="#000000"> 
<font color ="#000000"><font size ="3"><b><font color ="#000000"><font size ="3"><i><font size ="3"><font color ="#000000"><u><font color ="#000000"><font size ="3">o</font></font></u></font></font></i></font></font></b></font></font></font></font></font></font><b><font color ="#000000"><font size ="3"><i><font size ="3"><font color ="#000000"><u><font color ="#000000"><font size ="3">u</font></font></u></font></font></i></font></font></b></p> 

Является ли это ожидаемый или я что-то отсутствует? Предлагайте Пожалуйста

ответ

0

Попробуйте это:

Html.toHtml(editText.getText().toString()); 

Надеется, что это поможет вам нужный текст.

+1

Html.totoHtml (принимает только одностороннее). Я мог бы добавить лишний промежуток в другом месте. –

0

Хм Похоже, проблема с

Spannable.SPAN_EXCLUSIVE_EXCLUSIVE 

Если вы читали документацию, если она выглядит, как любой новый текст вставленного в строку после этого не получат форматирование, заданные. Чтобы сделать это в html, теги должны быть добавлены к каждому отдельному символу. Так что у вас есть, кажется, что, как ожидается

Если вы хотите, чтобы было меньше метки попробуйте использовать

Spannable.SPAN_INCLUSIVE_INCLUSIVE 

разница будет в том, что любой текст вставляется в строку после этого будет иметь такое же форматирование, что окружающий текст.