0

私のAndroidアプリはTextViewにテキストを表示しています。

イタリックにしたい単語を囲むタグなどはありますか?文全体がそのようになるため、TextViewを斜体に設定する必要はありません。また、斜体の特定の単語のみが必要です。

4

4 に答える 4

1

Spannableを使用する必要があります。例については、Is there any example about Spanned and Spannable textを参照してください。

于 2011-06-22T16:41:29.507 に答える
0

同意します。これはデータベースの問題ではありません。これがあなたが取り組んでいるカスタム アプリでない場合は、運が悪いです。そうである場合は、フィールドをデータベースに HTML として保存します。

于 2011-06-22T16:40:51.517 に答える
0

この関数は、文字列を TextView のテキストとして設定し、その文字列内の 1 つまたは複数のスパンがタグ [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として保存してから、テキストビューにHTMLを出力することです。

次の記事を参照してください:TextViewでHTMLを表示する方法は?

于 2011-06-22T16:35:38.383 に答える