0

我的 Android 应用在 TextView 中显示文本。

是否有任何标签或任何东西可以放在我想要斜体的单词周围?我不需要将 TextView 设置为斜体,因为整个句子都是这样的,我只需要斜体的特定单词。

4

4 回答 4

1

您需要使用Spannable:请参阅Is there any example about Spanned and Spannable text for example。

于 2011-06-22T16:41:29.507 回答
0

我同意,这不是数据库问题。如果这不是您正在开发的自定义应用程序,那么您就不走运了。如果是,请将数据库中的字段保存为 HTML。

于 2011-06-22T16:40:51.517 回答
0

此函数将字符串设置为 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);
    }
于 2017-05-01T14:17:51.233 回答
-1

解决方案似乎是将数据库中的内容保存为 HTML,然后在 textview 中输出 HTML。

请参阅以下文章:如何在 TextView 中显示 HTML?

于 2011-06-22T16:35:38.383 回答