首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SpannableString html批注

SpannableString html批注
EN

Stack Overflow用户
提问于 2019-05-16 14:51:12
回答 1查看 158关注 0票数 0

我遵循了Styling internationalized text in Android中的教程,并使用了代码:

代码语言:javascript
复制
SpannedString titleText = (SpannedString) getText(R.string.title);
Annotation[] annotations = titleText.getSpans(0, titleText.length(), Annotation.class);
SpannableString spannableString1 = new SpannableString(titleText);
  for (Annotation annotation : annotations) {
    if (annotation.getKey().equals("id")) {
      final String fontName = annotation.getValue();
      spannableString1.setSpan(new StyleSpan(Typeface.BOLD),
      titleText.getSpanStart(annotation),
      titleText.getSpanEnd(annotation),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
      spannableString1.setSpan(new ClickableSpan() {
        @Override
        public void onClick(View widget) {
          Toast.makeText(MainActivity.this, fontName + "", Toast.LENGTH_SHORT).show();
        }
      }, titleText.getSpanStart(annotation), titleText.getSpanEnd(annotation), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    }
  }
textView.setMovementMethod(LinkMovementMethod.getInstance());
textView.setText(spannableString1);

我用string.xml中的string <string name="title"><i>Best practices for</i> <annotation id="1">text1</annotation> on Android <annotation id="2">text2</annotation></string>对此进行了测试,它运行得非常好。但是我想用代码将字符串从string.xml移动到MainActivity.class

代码语言:javascript
复制
String title="<i>Best practices for</i> <annotation id=\"1\">text1</annotation> on Android <annotation id=\"2\">text2</annotation>";
SpannedString titleText = new SpannedString(title);//
Annotation[] annotations = titleText.getSpans(0, titleText.length(), Annotation.class);
...

但它不起作用。它显示了我的TextView中html的所有标签。如何将文本从string.xml更改为MainActivity.java并获得相同的结果?

EN

回答 1

Stack Overflow用户

发布于 2019-05-16 15:29:28

使用HtmlCompat.fromHtml()

代码语言:javascript
复制
SpannedString titleText = new SpannedString(HtmlCompat.fromHtml(title, HtmlCompat.FROM_HTML_MODE_LEGACY));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56162437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档