Как вы подчеркиваете текст в Android XML?

Как вы подчеркиваете текст в XML файле? Я не могу найти вариант в textStyle.

Ответ 1

Если вы используете XML файл с строковым ресурсом (поддерживает теги HTML), его можно выполнить с помощью <b> </b>, <i> </i> и <u> </u>.

<resources>
    <string name="your_string_here">
        This is an <u>underline</u>.
    </string>
</resources>

Если вы хотите подчеркнуть что-то из кода, используйте:

TextView tv = (TextView) view.findViewById(R.id.tv);
SpannableString content = new SpannableString("Content");
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
tv.setText(content);

Надеюсь, что это поможет

Ответ 2

Используйте это:

TextView txt = (TextView) findViewById(R.id.Textview1);
txt.setPaintFlags(txt.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);

Ответ 3

<resource>
    <string name="your_string_here">This is an <u>underline</u>.</string>
</resources>

Если он не работает, то

<resource>
<string name="your_string_here">This is an &lt;u>underline&lt;/u>.</string>

Потому что "<" может быть ключевым словом в течение некоторого времени.

И для отображения

TextView textView = (TextView) view.findViewById(R.id.textview);
textView.setText(Html.fromHtml(getString(R.string.your_string_here)));

Ответ 4

Прежде всего перейдите в файл String.xml

вы можете добавить любые атрибуты html, такие как курсив или полужирный или подчеркнутый.

    <resource>
        <string name="your_string_here">This is an <u>underline</u>.</string>
    </resources>

Ответ 5

Другой способ сделать это - создать настраиваемый компонент, расширяющий TextView. Это хорошо для случаев, когда вам нужно иметь несколько подчеркнутых TextView.

Здесь код для компонента:

package com.myapp.components;

import android.content.Context;
import android.support.v7.widget.AppCompatTextView;
import android.text.SpannableString;
import android.text.style.UnderlineSpan;
import android.util.AttributeSet;

public class LinkTextView extends AppCompatTextView {
    public LinkTextView(Context context) {
        this(context, null);
    }

    public LinkTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    public void setText(CharSequence text, BufferType type) {
        SpannableString content = new SpannableString(text);
        content.setSpan(new UnderlineSpan(), 0, content.length(), 0);

        super.setText(content, type);
    }
}

И как использовать его в xml:

<com.myapp.components.LinkTextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Hello World!" />

Ответ 6

Я использовал метод ниже, он работал для меня. Ниже приведен пример для кнопки, но мы можем использовать и в TextView.

Button btnClickMe = (Button) findViewById(R.id.btn_click_me);
btnClickMe.setPaintFlags(btnClickMe.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);

Ответ 7

Вы можете использовать разметку ниже, но обратите внимание, что если вы установите textAllCaps на true, эффект подчеркивания будет удален.

<resource>
    <string name="my_string_value">I am <u>underlined</u>.</string>
</resources>


Примечание

Использование textAllCaps со строкой (login_change_settings), содержащей разметку; разметка будет сброшена с помощью конверсии шапок

Текстовое преобразование textAllCaps приведет к вызову toString в CharSequence, который имеет чистый эффект удаления любой разметки, такой как. Эта проверка проверяет использование строк, содержащих разметку, которые также указывают textAllCaps = true.

Ответ 8

Чтобы завершить ответ Бхавина. Например, чтобы добавить подчеркивание или перенаправление.

((TextView) findViewById(R.id.tv_cgu)).setText(Html.fromHtml(getString(R.string.upload_poi_CGU)));

<string name="upload_poi_CGU"><![CDATA[ J\'accepte les <a href="">conditions générales</a>]]></string>

и здесь вы можете узнать совместимый тег: http://commonsware.com/blog/Android/2010/05/26/html-tags-supported-by-textview.html

Ответ 9

Существуют различные способы достижения подчеркнутого текста в Android TextView.

1. <u>This is my underlined text</u> или

I just want to underline <u>this</u> word

2. Вы можете сделать то же самое программно.

'textView.setPaintFlags(textView.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);'

3. Это можно сделать, создав SpannableString, а затем установив его как текстовое свойство TextView

SpannableString text = new SpannableString("Voglio sottolineare solo questa parola");
text.setSpan(new UnderlineSpan(), 25, 6, 0);
textView.setText(text);

Ответ 10

вы можете попробовать этот код:

textview.setPaintFlags(textview.getPaintFlags() |   Paint.UNDERLINE_TEXT_FLAG);