我以前开发了一个Android应用程序,作为用户的参考指南.它使用sqlite数据库来存储信息.数据库存储没有格式化的UTF-8文本(即粗体或带下划线)
为了突出显示所需格式的文本部分,我使用delimiter标记特别为$$括起它们,因为这不会在数据库中显示为信息.在向用户显示文本之前,我编写了一个方法来查找这些分隔符并为其中包含的文本添加格式并删除分隔符.所以$$ foo $$变成了foo.
我的java代码如下:
private static CharSequence boldUnderlineText(CharSequence text, String token) {
int tokenLen = token.length();
int start = text.toString().indexOf(token) + tokenLen;
int end = text.toString().indexOf(token, start);
while (start > -1 && end > -1)
{
SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(text);
//add the formatting required
spannableStringBuilder.setSpan(new UnderlineSpan(), start, end, 0);
spannableStringBuilder.setSpan(new StyleSpan(Typeface.BOLD), start, end, 0);
// Delete the tokens before and after the span
spannableStringBuilder.delete(end, end + tokenLen);
spannableStringBuilder.delete(start - tokenLen, start);
text = spannableStringBuilder;
start = …Run Code Online (Sandbox Code Playgroud)