Senang mendengarnya .. Tandai pertanyaan ini sebagai terselesaikan sehingga pengguna lain dapat merujuknya.
Kartik Domadiya
4
Pendekatan ketiga akan digunakan Html.fromHtml("<u>This text will be underlined</u>"), tetapi saya harus mengakui bahwa saya adalah penggemar yang jauh lebih besar dalam menggunakan SpannableStrings. @Kartik: Anda mungkin juga menggunakan a StrikethroughSpanpada teks untuk membuat efek coretan. :)
MH.
Suka pendekatan ke-3. Pendek, sederhana dan ringkas dan hanya menambahkan satu baris kode ekstra ke program saya.
Matt
Saya tahu ini agak kuno, tetapi adakah cara untuk mengatur ketebalan garis bawah?
Andreas Wong
yang mana yang digunakan untuk konten preferenceActivity, di PreferenceCategory?
Pengembang android
40
cukup apit teks Anda dengan tag <u> di file sumber daya string.xml Anda
@CHAKRAVARTHI ini tidak akan berfungsi jika Anda mentransmisikan teks ke string sebelum menyetel. Misalnya textView.setText(getString(R.string.text))<- salah . Benar:textView.setText(getText(R.string.text)) atau hanya textView.setText(R.string.text). Alasannya adalah ini yang getText()mengembalikan Spannabledengan rentang garis bawah, tetapi jika Anda menggunakannya getString()akan mengubah Spannablemenjadi Stringrentang yang dihasilkan dihapus.
Yaroslav Mytkalyk
poin yang bagus! Saya telah mengedit jawaban saya saat ini agar lebih jelas
Jika TextView Anda memiliki lebar tetap, solusi alternatifnya adalah membuat Tampilan yang akan terlihat seperti garis bawah dan memposisikannya tepat di bawah TextView Anda.
String html = "<u>Underline using Html.fromHtml()</u>";
textview.setText(Html.fromHtml(html));
Namun Html.fromHtml (Sumber daya string) tidak digunakan lagi di API 24.
Jadi, Anda dapat menggunakan pustaka dukungan android terbaru androidx.core.text.HtmlCompat . Sebelum itu, Anda perlu memasukkan dependensi dalam proyek Anda.
`implementation 'androidx.core:core:1.0.1'`
String html = "<u> 1.1 Underline using HtmlCompat.fromHtml()</u>";
//underline textview using HtmlCompat.fromHtml() method
textview11.setText(HtmlCompat.fromHtml(html, HtmlCompat.FROM_HTML_MODE_LEGACY));
Menggunakan strings.xml ,
<string name="underline_text">1.3 <u>Underline using HtmlCompat.fromHtml() and string resource</u></string>
Jawaban:
Ada tiga cara untuk mendasari teks di TextView.
SpannableString
setPaintFlags (); dari TextView
Html.fromHtml ();
Izinkan saya menjelaskan kepada Anda semua pendekatan:
Pendekatan Pertama
Untuk mendasari teks di TextView, Anda harus menggunakan SpannableString
Pendekatan ke-2
Anda bisa menggunakan metode setPaintFlags dari TextView untuk menggarisbawahi teks TextView.
Misalnya.
Anda dapat merujuk konstanta kelas Paint jika Anda ingin menyerang melalui teks.
Pendekatan ke-3
Menggunakan
Html.fromHtml(htmlString);
ATAU
sumber
Html.fromHtml("<u>This text will be underlined</u>")
, tetapi saya harus mengakui bahwa saya adalah penggemar yang jauh lebih besar dalam menggunakan SpannableStrings. @Kartik: Anda mungkin juga menggunakan aStrikethroughSpan
pada teks untuk membuat efek coretan. :)cukup apit teks Anda dengan tag <u> di file sumber daya string.xml Anda
dan dalam Aktivitas / Fragmen Anda
sumber
textView.setText(getString(R.string.text))
<- salah . Benar:textView.setText(getText(R.string.text))
atau hanyatextView.setText(R.string.text)
. Alasannya adalah ini yanggetText()
mengembalikanSpannable
dengan rentang garis bawah, tetapi jika Anda menggunakannyagetString()
akan mengubahSpannable
menjadiString
rentang yang dihasilkan dihapus.Ini berhasil untuk saya.
sumber
Untuk siapa pun yang masih melihat querstion ini. Ini untuk hyperlink tetapi Anda dapat memodifikasinya hanya untuk garis bawah biasa:
Buat drawable (hyperlink_underline.xml):
Buat gaya baru:
Kemudian gunakan gaya ini di TextView Anda:
sumber
Jika TextView Anda memiliki lebar tetap, solusi alternatifnya adalah membuat Tampilan yang akan terlihat seperti garis bawah dan memposisikannya tepat di bawah TextView Anda.
sumber
Solusi sederhana dan berkelanjutan adalah membuat daftar lapisan dan menjadikannya sebagai latar belakang TextView Anda:
sumber
5 Cara Luar Biasa Untuk Menggarisbawahi TextView Di Android - Kotlin / Java & XML
String html = "<u>Underline using Html.fromHtml()</u>"; textview.setText(Html.fromHtml(html));
Namun Html.fromHtml (Sumber daya string) tidak digunakan lagi di API 24.
Jadi, Anda dapat menggunakan pustaka dukungan android terbaru androidx.core.text.HtmlCompat . Sebelum itu, Anda perlu memasukkan dependensi dalam proyek Anda.
String html = "<u> 1.1 Underline using HtmlCompat.fromHtml()</u>"; //underline textview using HtmlCompat.fromHtml() method textview11.setText(HtmlCompat.fromHtml(html, HtmlCompat.FROM_HTML_MODE_LEGACY));
Menggunakan strings.xml ,
<string name="underline_text">1.3 <u>Underline using HtmlCompat.fromHtml() and string resource</u></string>
textview13.setText(HtmlCompat.fromHtml(getString(R.string.underline_text), HtmlCompat.FROM_HTML_MODE_LEGACY));
menggunakan PaintFlags
textview2.setPaintFlags(textview2.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); textview2.setText("2. Underline using setPaintFlags()");
menggunakan SpannableString
sumber