首先参照网上的例子实现一个自定义标签
tvName.setText(Html.fromHtml(value, null, new TagHandler() {
private int startIndex = 0;
private int stopIndex = 0;
@Override
public void handleTag(boolean opening, String tag, Editable output,XMLReader xmlReader) {
//Logger.e("TimeResultAdapter", "handleTag-->"+output.toString());
if (tag.toLowerCase().equals("game")) {
if (opening) {
startGame(tag, output, xmlReader);
}else{
endGame(tag, output, xmlReader);
}
}
}
public void startGame(String tag, Editable output, XMLReader xmlReader) {
startIndex = output.length();
Logger.e("TimeResultAdapter", "startGame-->"+output.toString());
}
public void endGame(String tag, Editable output, XMLReader xmlReader) {
stopIndex = output.length();
//把标签内的文字变成蓝色
output.setSpan(new ForegroundColorSpan(context.getResources().getColor(R.color.common_bg_blue)), startIndex, stopIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
Logger.e("TimeResultAdapter", "endGame-->"+output.toString());
}
}));
上面我是用内部类的方式重写了TagHandler这个类
当value=“xxxx要做特殊处理的文字xxxxxxx”或value="xxxx要做特殊处理的文字xxxxxxx,xxxx要做特殊处理的文字xxxxxxx"时都能正常显示
log打印如下格式(第一种情况)
` 01-06 09:56:39.526: E/TimeResultAdapter(15935): startGame-->xxxx
01-06 09:56:39.526: E/TimeResultAdapter(15935): endGame-->xxxx`要做特殊处理的文字
当value="要做特殊处理的文字xxxxxxxxxx"时就出现了问题
log打印格式如下
`01-06 09:56:39.576: E/TimeResultAdapter(15935): startGame-->
01-06 09:56:39.576: E/TimeResultAdapter(15935): endGame-->`要做特殊处理的文字xxxxxxx
直接吧所有文字都做特殊处理了,不知道怎么解决
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。