private static void setUnderlineSpan(SpannableStringBuilder builder, int start, int end) { builder.setSpan(new UnderlineSpan(), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); }
TextView textView = (TextView) view.findViewById(R.id.textview); SpannableString content = new SpannableString("Content"); content.setSpan(new UnderlineSpan(), 0, content.length(), 0); textView.setText(content);
String udata="Underlined Text"; SpannableString content = new SpannableString(udata); content.setSpan(new UnderlineSpan(), 0, udata.length(), 0); mTextView.setText(content);
String udata="Underlined Text"; SpannableString content = new SpannableString(udata); content.setSpan(new UnderlineSpan(), 0, udata.length(), 0);//where first 0 shows the starting and udata.length() shows the ending span.if you want to span only part of it than you can change these values like 5,8 then it will underline part of it. mTextView.setText(content);
package com.example.helloandroid; import android.app.Activity; import android.os.Bundle; import android.text.SpannableString; import android.text.style.UnderlineSpan; import android.widget.TextView; public class HelloAndroid extends Activity { TextView textview; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); textview = (TextView)findViewById(R.id.textview); SpannableString content = new SpannableString(getText(R.string.hello)); content.setSpan(new UnderlineSpan(), 0, content.length(), 0); textview.setText(content); } }
String tempString="Copyright"; TextView text=(TextView)findViewById(R.id.text); SpannableString spanString = new SpannableString(tempString); spanString.setSpan(new UnderlineSpan(), 0, spanString.length(), 0); spanString.setSpan(new StyleSpan(Typeface.BOLD), 0, spanString.length(), 0); spanString.setSpan(new StyleSpan(Typeface.ITALIC), 0, spanString.length(), 0); text.setText(spanString);
String mystring=new String("Hello....."); SpannableString content = new SpannableString(mystring); content.setSpan(new UnderlineSpan(), 0, mystring.length(), 0); yourtextview.setText(content);
@Override public void setText(CharSequence text, BufferType type) { // code to check text for null omitted SpannableString content = new SpannableString(text); content.setSpan(new UnderlineSpan(), 0, text.length(), 0); super.setText(content, BufferType.SPANNABLE); }
TextView tv = (TextView) view.findViewById(R.id.tv); SpannableString content = new SpannableString("Content"); content.setSpan(new UnderlineSpan(), 0, content.length(), 0); tv.setText(content);
public SpannableString buildSpannableString() { SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(captionStringBuilder); int length = spannableStringBuilder.length(); if (length > 0) { if (italicsStartPosition != C.POSITION_UNSET) { spannableStringBuilder.setSpan(new StyleSpan(Typeface.ITALIC), italicsStartPosition, length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } if (underlineStartPosition != C.POSITION_UNSET) { spannableStringBuilder.setSpan(new UnderlineSpan(), underlineStartPosition, length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } if (foregroundColorStartPosition != C.POSITION_UNSET) { spannableStringBuilder.setSpan(new ForegroundColorSpan(foregroundColor), foregroundColorStartPosition, length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } if (backgroundColorStartPosition != C.POSITION_UNSET) { spannableStringBuilder.setSpan(new BackgroundColorSpan(backgroundColor), backgroundColorStartPosition, length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } } return new SpannableString(spannableStringBuilder); }
cs = new UnderlineSpan(); ssb.setSpan(cs, start, end, 1); bodyView.setText(ssb);
private static void attachFontFace(SpannableStringBuilder cueText, int fontFace, int defaultFontFace, int start, int end, int spanPriority) { if (fontFace != defaultFontFace) { final int flags = Spanned.SPAN_EXCLUSIVE_EXCLUSIVE | spanPriority; boolean isBold = (fontFace & FONT_FACE_BOLD) != 0; boolean isItalic = (fontFace & FONT_FACE_ITALIC) != 0; if (isBold) { if (isItalic) { cueText.setSpan(new StyleSpan(Typeface.BOLD_ITALIC), start, end, flags); } else { cueText.setSpan(new StyleSpan(Typeface.BOLD), start, end, flags); } } else if (isItalic) { cueText.setSpan(new StyleSpan(Typeface.ITALIC), start, end, flags); } boolean isUnderlined = (fontFace & FONT_FACE_UNDERLINE) != 0; if (isUnderlined) { cueText.setSpan(new UnderlineSpan(), start, end, flags); } if (!isUnderlined && !isBold && !isItalic) { cueText.setSpan(new StyleSpan(Typeface.NORMAL), start, end, flags); } } }
protected void underlineValid(int start, int end) { if (start >= end) { return; } getEditableText().setSpan(new UnderlineSpan(), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); }
break; case TAG_UNDERLINE: text.setSpan(new UnderlineSpan(), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); break; case TAG_CLASS:
public void setPenAttributes(int textTag, int offset, int penSize, boolean italicsToggle, boolean underlineToggle, int edgeType, int fontStyle) { // TODO: Add support for text tags. // TODO: Add support for other offsets. // TODO: Add support for other pen sizes. if (italicsStartPosition != C.POSITION_UNSET) { if (!italicsToggle) { captionStringBuilder.setSpan(new StyleSpan(Typeface.ITALIC), italicsStartPosition, captionStringBuilder.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); italicsStartPosition = C.POSITION_UNSET; } } else if (italicsToggle) { italicsStartPosition = captionStringBuilder.length(); } if (underlineStartPosition != C.POSITION_UNSET) { if (!underlineToggle) { captionStringBuilder.setSpan(new UnderlineSpan(), underlineStartPosition, captionStringBuilder.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); underlineStartPosition = C.POSITION_UNSET; } } else if (underlineToggle) { underlineStartPosition = captionStringBuilder.length(); } // TODO: Add support for edge types. // TODO: Add support for other font styles. }
@Test public void testSetSpan() { URLSpan s1 = new URLSpan("http://www.foobar.com"); UnderlineSpan s2 = new UnderlineSpan(); spanStr.setSpan(s1, 12, 33, 0); spanStr.setSpan(s2, 1, 10, 0); assertBothSpans(s1, s2); }
@Test public void testRemoveSpan() { URLSpan s1 = new URLSpan("http://www.foobar.com"); UnderlineSpan s2 = new UnderlineSpan(); spanStr.setSpan(s1, 12, 33, 0); spanStr.setSpan(s2, 1, 10, 0); spanStr.removeSpan(s1); Object[] spans = spanStr.getSpans(0, TEST_STRING.length(), Object.class); assertThat(spans).isNotNull(); assertThat(spans.length).isEqualTo(1); assertThat((UnderlineSpan) spans[0]).isSameAs(s2); }
builder.setSpan(new UnderlineSpan(), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
spannedText.setSpan(new UnderlineSpan(), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
@Test public void testGetSpans() { URLSpan s1 = new URLSpan("http://www.foobar.com"); UnderlineSpan s2 = new UnderlineSpan(); spanStr.setSpan(s1, 1, 10, 0); spanStr.setSpan(s2, 20, 30, 0); Object[] spans = spanStr.getSpans(0, TEST_STRING.length(), Object.class); assertThat(spans).isNotNull(); assertThat(spans.length).isEqualTo(2); assertBothSpans(s1, s2); spans = spanStr.getSpans(0, TEST_STRING.length(), URLSpan.class); assertThat(spans).isNotNull(); assertThat(spans.length).isEqualTo(1); assertThat((URLSpan) spans[0]).isSameAs(s1); spans = spanStr.getSpans(11, 35, Object.class); assertThat(spans).isNotNull(); assertThat(spans.length).isEqualTo(1); assertThat((UnderlineSpan) spans[0]).isSameAs(s2); spans = spanStr.getSpans(21, 35, Object.class); assertThat(spans).isNotNull(); assertThat(spans.length).isEqualTo(1); assertThat((UnderlineSpan) spans[0]).isSameAs(s2); spans = spanStr.getSpans(5, 15, Object.class); assertThat(spans).isNotNull(); assertThat(spans.length).isEqualTo(1); assertThat((URLSpan) spans[0]).isSameAs(s1); }