Как вы подчеркиваете текст в XML файле? Я не могу найти вариант в textStyle
.
Как вы подчеркиваете текст в Android XML?
Ответ 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 <u>underline</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);