Подтвердить что ты не робот

Как установить текст подчеркивания в текстовом режиме?

Любое представление тела об этом, Как установить текст подчеркивания в textview? если да, сообщите.

Я использовал следующий код, но не работал.

tvHide.setText(Html.fromHtml("<p><u>Hide post</u></p>").toString());

Заранее спасибо

4b9b3361

Ответ 1

Для этого вам необходимо использовать SpannableString:

String mystring=new String("Hello.....");
SpannableString content = new SpannableString(mystring);
content.setSpan(new UnderlineSpan(), 0, mystring.length(), 0);
yourtextview.setText(content);

Обновление: вы можете отсылать мой ответ на Underling TextView здесь всеми возможными способами.

Ответ 2

Ниже приведены некоторые подходы для подчеркнутого текста в android:

1-й подход

Вы можете определить свою строку в strings.xml

<string name="your_string"><u>Underlined text</u></string>

И используйте эту строку в файле xml

<TextView
            android:id="@+id/txt_underlined"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:text="@string/your_string"/>

Или вы можете использовать эту строку в своем Activity/Fragment

txtView.setText(R.string.your_string);

Второй подход

Чтобы подчеркнуть текст в TextView, вы можете использовать SpannableString

String text="Underlined Text";
SpannableString content = new SpannableString(text);
content.setSpan(new UnderlineSpan(), 0, text.length(), 0);
txtView.setText(content);

Третий подход

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

txtView.setPaintFlags(mTextView.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
txtView.setText("Underlined Text");

4-й подход

Использовать Html.fromHtml(htmlString);

String htmlString="<u>Underlined Text</u>";
txtView.setText(Html.fromHtml(htmlString));

Или

txtView.setText(Html.fromHtml("<u>underlined</u> text"));

Примечание:

Если вы добавили эту строку android:textAllCaps="true" в свой макет, то ни одно из вышеперечисленных действий не будет работать. Для этого вам нужно определить свою строку в Caps, а затем любой из указанных выше способов.

Ответ 3

Использовать этот

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

Ответ 4

Android поддерживает форматирование строк с использованием тегов HTML в строках xml. Таким образом, будет работать следующее:

<string name="label_testinghtmltags"><u>This text has an underscore</u></string>

Тогда вы просто используете его, как обычно. Вы можете увидеть больше в документации здесь

Обновить:

Чтобы еще больше расширить ответ, в документации говорится:

... методы format(String, Object...) и getString(int, Object...) удаляют всю информацию о стиле из строки. , Обходным путем является написание HTML-тегов с экранированными сущностями, которые затем восстанавливаются с помощью fromHtml (String) после форматирования

Например, результирующая строка из следующего фрагмента кода не будет отображаться как содержащая подчеркнутые элементы:

<string name="html_bold_test">This <u>%1$s</u> has an underscore</string>
String result = getString(R.string.html_bold_test, "text")

Однако результат из следующего фрагмента будет содержать подчеркивания:

<string name="html_bold_test">This &lt;u> %1$s &lt;/u> has an underscore</string>
String result = Html.fromHtml(getString(R.string.html_bold_test, "text"))

Ответ 5

вы почти там: просто не назовите toString() на Html.fromHtml(), и вы получите Spanned Object, который будет выполнять задание;)

tvHide.setText(Html.fromHtml("<p><u>Hide post</u></p>"));

Ответ 6

Попробуй это,

tv.setPaintFlags(Paint.UNDERLINE_TEXT_FLAG);

Ответ 7

Не нужно использовать свойства HTML, давайте сосредоточимся на java xD У меня была та же проблема, я нашел способ сделать это в java:

String text="Hide post";
TextView tvHide=(TextView)findViewById(R.id.text);
SpannableString spanString = new SpannableString(text);
spanString.setSpan(new UnderlineSpan(), 0, spanString.length(), 0);
tvHide.setText(spanString );

Ответ 8

Я считаю, что вам нужно использовать CharSequence. Вы можете найти здесь здесь.

Ответ 9

Вы можете сделать это как:

tvHide.setText(Html.fromHtml("<p><span style='text-decoration: underline'>Hide post</span></p>").toString());

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

Ответ 10

Простой и легкий способ отображения подчеркивания в TextView:

yourTextView.getPaint().setUnderlineText(true);

И если вы хотите удалить подчеркивание для этого представления, вы можете написать ниже код:

yourTextView.getPaint().setUnderlineText(false);

Это будет работать, даже если вы установите android:textAllCaps="true"

Ответ 11

Вы можете легко добавить View с высотой выравнивания 1dp и концом TextView, прямо под ним. Вы также можете использовать marginTop с отрицательным значением, чтобы подчеркнуть подчеркивание ближе к TextView. Если вы используете TextView и нижнюю часть внутри относительного макета, выравнивания будет намного проще. вот пример:

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<View
  android:id="@+id/viewForgotPasswordUnderline"
  android:layout_width="wrap_content"
  android:layout_height="1dp"
  android:layout_below="@id/txtForgotPassword"
  android:layout_alignStart="@id/txtForgotPassword"
  android:layout_alignEnd="@id/txtForgotPassword"
  android:layout_marginTop="-2dp"
  android:background="@color/lightGray" />

<androidx.appcompat.widget.AppCompatTextView
  android:id="@+id/txtForgotPassword"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_centerHorizontal="true"
  android:paddingTop="8dp"
  android:text="@string/userLoginForgotPassword"
  android:textColor="@color/lightGray"
  android:textSize="16dp" />
</RelativeLayout>

Ответ 12

В моем файле sign_in.xml я использовал это:

<Button
    android:id="@+id/signuptextlinkbtn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    android:background="@android:color/transparent"
    android:onClick="performSingUpMethod"
    android:text="Sign up now!"
    android:textColor="#5B55FF"
    android:textSize="15dp"
    android:textStyle="bold" />

В моем файле SignIn.java я использовал это:

import android.graphics.Paint;
Button signuptextlinkbutton = (Button) findViewById(R.id.signuptextlinkbtn);
signuptextlinkbutton.setPaintFlags(signuptextlinkbutton.getPaintFlags()| Paint.UNDERLINE_TEXT_FLAG);

Теперь я вижу, что моя ссылка подчеркнута. Это был просто текст, даже если бы я объявил его как Button.