У меня есть следующие входные данные в String: «Hello # this # is # sample # text."Удаление символов из spannable CharSequence
Он устанавливает цвет фона для всех элементов между # символами. Вот что я получил до сих пор:
public static CharSequence colorBackground(CharSequence text) {
Pattern pattern = Pattern.compile("#(.*?)#");
Spannable spannable = new SpannableString(text);
if(pattern != null)
{
Matcher matcher = pattern.matcher(text);
while(matcher.find())
{
int start = matcher.start();
int end = matcher.end();
CharacterStyle span = new BackgroundColorSpan(0xFF404040);
spannable.setSpan(span, start, end, 0);
}
}
return spannable;
}
Настройка цвета фона, но символы-заполнители # тоже стилизованы. Как удалить их перед возвратом результата, потому что метод ReplaceAll не существует для CharSequence?
Я использую эту функцию для создания строк TextView в ListView. После добавления этой функции стиля она немного медленнее в эмуляторе. Может быть, я должен подойти к нему каким-то другим способом, например. использовать пользовательский TextView с пользовательской функцией рисования?
Спасибо за ваше время, Spannables немного запутывают работу с самого начала. По крайней мере, он работает быстрее, чем fromHtml. – joshas