Bagaimana Anda menggarisbawahi teks dalam file XML? Saya tidak dapat menemukan opsi di textStyle
.
textView.setText(Html.fromHtml("<u>"+"testest"+"</u>"));
Bagaimana Anda menggarisbawahi teks dalam file XML? Saya tidak dapat menemukan opsi di textStyle
.
textView.setText(Html.fromHtml("<u>"+"testest"+"</u>"));
Jawaban:
Jika Anda menggunakan file xml sumber daya string (mendukung tag HTML), ini dapat dilakukan dengan <b> </b>
, <i> </i>
dan <u> </u>
.
<resources>
<string name="your_string_here">
This is an <u>underline</u>.
</string>
</resources>
Jika Anda ingin menggarisbawahi sesuatu dari penggunaan kode:
TextView tv = (TextView) view.findViewById(R.id.tv);
SpannableString content = new SpannableString("Content");
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
tv.setText(content);
Semoga ini membantu
<u>
tag tidak berfungsi, misalnya terkadang jika Anda menggunakan font khusus. Namun, mendasari secara terprogram oleh UnderlineSpan
memang tidak pernah gagal pada saya, jadi saya akan merekomendasikannya sebagai solusi yang paling dapat diandalkan.
<u>
dan <\u>
dalam XML, dan itu sudah cukup.
Gunakan ini:
TextView txt = (TextView) findViewById(R.id.Textview1);
txt.setPaintFlags(txt.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
UnderlineSpan
.
<resource>
<string name="your_string_here">This is an <u>underline</u>.</string>
</resources>
Jika tidak berhasil maka
<resource>
<string name="your_string_here">This is an <u>underline</u>.</string>
Karena "<" bisa menjadi kata kunci pada suatu saat.
Dan untuk Menampilkan
TextView textView = (TextView) view.findViewById(R.id.textview);
textView.setText(Html.fromHtml(getString(R.string.your_string_here)));
Pertama-tama, buka file String.xml
Anda dapat menambahkan atribut HTML seperti, miring atau tebal atau garis bawah di sini.
<resources>
<string name="your_string_here">This is an <u>underline</u>.</string>
</resources>
Cara lain untuk melakukannya, adalah membuat komponen kustom yang memperluas TextView. Ini bagus untuk kasus di mana Anda perlu memiliki beberapa TextView yang digarisbawahi.
Berikut kode untuk komponen tersebut:
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);
}
}
Dan cara menggunakannya di xml:
<com.myapp.components.LinkTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hello World!" />
Untuk melengkapi jawaban Bhavin. Misalnya, untuk menambahkan garis bawah atau pengalihan.
((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>
dan Anda dapat mengetahui tag yang kompatibel di sini: http://commonsware.com/blog/Android/2010/05/26/html-tags-supported-by-textview.html
Anda dapat menggunakan markup di bawah ini, tetapi perhatikan bahwa jika Anda menyetel textAllCaps
ke true
efek garis bawah akan dihapus.
<resource>
<string name="my_string_value">I am <u>underlined</u>.</string>
</resources>
Catatan
Menggunakan textAllCaps dengan string (login_change_settings) yang berisi markup; markup akan diturunkan oleh konversi topi
Transformasi teks textAllCaps pada akhirnya akan memanggil toString pada CharSequence, yang memiliki efek bersih menghapus markup seperti. Pemeriksaan ini mencari penggunaan string yang berisi markup yang juga menentukan textAllCaps = true.
Ada berbagai cara untuk mendapatkan teks yang digarisbawahi dalam TextView Android.
1. <u>This is my underlined text</u>
atau
I just want to underline <u>this</u> word
2. Anda dapat melakukan hal yang sama secara terprogram.
`textView.setPaintFlags(textView.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);`
3. Ini bisa dilakukan dengan membuat SpannableString dan kemudian mengaturnya sebagai properti teks TextView
SpannableString text = new SpannableString("Voglio sottolineare solo questa parola");
text.setSpan(new UnderlineSpan(), 25, 6, 0);
textView.setText(text);
Saya menggunakan metode di bawah ini, itu berhasil untuk saya. Di bawah ini adalah contoh untuk Tombol tetapi kita juga bisa menggunakannya di TextView.
Button btnClickMe = (Button) findViewById(R.id.btn_click_me);
btnClickMe.setPaintFlags(btnClickMe.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
Jika Anda ingin membandingkan teks String atau teks akan berubah secara dinamis maka Anda dapat membuat tampilan di Constraint layout yang akan disesuaikan dengan panjang teks seperti ini
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/txt_Previous"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="8dp"
android:gravity="center"
android:text="Last Month Rankings"
android:textColor="@color/colorBlue"
android:textSize="15sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<View
android:layout_width="0dp"
android:layout_height="0.7dp"
android:background="@color/colorBlue"
app:layout_constraintEnd_toEndOf="@+id/txt_Previous"
app:layout_constraintStart_toStartOf="@+id/txt_Previous"
app:layout_constraintBottom_toBottomOf="@id/txt_Previous"/>
</android.support.constraint.ConstraintLayout>
public void setUnderLineText(TextView tv, String textToUnderLine) {
String tvt = tv.getText().toString();
int ofe = tvt.indexOf(textToUnderLine, 0);
UnderlineSpan underlineSpan = new UnderlineSpan();
SpannableString wordToSpan = new SpannableString(tv.getText());
for (int ofs = 0; ofs < tvt.length() && ofe != -1; ofs = ofe + 1) {
ofe = tvt.indexOf(textToUnderLine, ofs);
if (ofe == -1)
break;
else {
wordToSpan.setSpan(underlineSpan, ofe, ofe + textToUnderLine.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(wordToSpan, TextView.BufferType.SPANNABLE);
}
}
}
TextView tv = findViewById(R.id.tv);
tv.setText("some text");
setUnderLineText(tv, "some");
Juga mendukung anak-anak TextView seperti EditText, Button, Checkbox
jika kamu mau
- Teks garis bawah yang bisa diklik?
- Menggarisbawahi beberapa bagian TextView?
Kemudian Periksa Jawaban Ini
style="text-decoration: underline;"