我目前正在尝试弄清楚如何使用来自API的动态字符串使文本变为粗体、斜体或下划线,必须为粗体的文本为*粗体*,斜体为_斜体,下划线为#underline#(与 Stackoverflow 相同的功能)。成功转换文本后,我也希望删除特殊字符。
来自 API 的文本 - *我很大胆*,也喜欢看到 _myself 和 _ others。
预期的答案 -我很大胆,也喜欢看到自己和他人。
如果我尝试在粗体之后创建斜体,如果我尝试删除特殊字符,我已经尝试了一些不起作用的代码。
TextView t = findViewById(R.id.viewOne);
String text = "*I am Bold* and _I am Italic_ here *Bold too*";
SpannableStringBuilder b = new SpannableStringBuilder(text);
Matcher matcher = Pattern.compile(Pattern.quote("*") + "(.*?)" + Pattern.quote("*")).matcher(text);
while (matcher.find()){
String name = matcher.group(1);
int index = text.indexOf(name)-1;
b.setSpan(new StyleSpan(Typeface.BOLD), index, index + name.length()+1, SpannableStringBuilder.SPAN_EXCLUSIVE_EXCLUSIVE);
}
t.setText(b);
我不想使用 HTML 标签