我的 Android 应用在 TextView 中显示文本。
是否有任何标签或任何东西可以放在我想要斜体的单词周围?我不需要将 TextView 设置为斜体,因为整个句子都是这样的,我只需要斜体的特定单词。
您需要使用Spannable:请参阅Is there any example about Spanned and Spannable text for example。
我同意,这不是数据库问题。如果这不是您正在开发的自定义应用程序,那么您就不走运了。如果是,请将数据库中的字段保存为 HTML。
此函数将字符串设置为 TextView 的文本,并将该字符串中的一个或多个跨度斜体化,只要跨度或跨度用标签 [i] 和 [/i] 标记即可。当然,它可以修改为其他类型的样式。
private void doItalicize(TextView xTextView, String xString) {
ArrayList<Integer> IndexStart = new ArrayList<>();
ArrayList<Integer> IndexEnd = new ArrayList<>();
ArrayList<StyleSpan> SpanArray = new ArrayList<>();
int i = 0;
do {
IndexStart.add(i, xString.indexOf("[i]"));
IndexEnd.add(i, xString.indexOf("[/i]") - 3);
xString = xString.replaceFirst("\\[i\\]", "");
xString = xString.replaceFirst("\\[/i\\]", "");
xTextView.setText(xString, TextView.BufferType.SPANNABLE);
SpanArray.add(i, new StyleSpan(Typeface.ITALIC));
Log.d(LOG_TAG, "i: " + i);
i++;
} while (xString.contains("[i]"));
Spannable xSpannable = (Spannable) xTextView.getText();
for (int j = 0; j < i; j++)
xSpannable.setSpan(SpanArray.get(j), IndexStart.get(j), IndexEnd.get(j), Spanned
.SPAN_EXCLUSIVE_EXCLUSIVE);
}
解决方案似乎是将数据库中的内容保存为 HTML,然后在 textview 中输出 HTML。
请参阅以下文章:如何在 TextView 中显示 HTML?