How do you underline a text in an XML file? I can't find an option in textStyle
.
textView.setText(Html.fromHtml("<u>"+"testest"+"</u>"));
ρяσѕρєя K 2012-04-04 21:01
If you are using a string resource xml file (supports HTML tags), it can be done using<b> </b>
, <i> </i>
and <u> </u>
.
<resources>
<string name="your_string_here">
This is an <u>underline</u>.
</string>
</resources>
If you want to underline something from code use:
TextView tv = (TextView) view.findViewById(R.id.tv);
SpannableString content = new SpannableString("Content");
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
tv.setText(content);
Hope this helps
<u>
tags does not work, e.g. sometimes if you are using a custom font. However, underlying programmatically by UnderlineSpan
has indeed never failed on me, so I would recommend it as the most reliable solution - Giulio Piancastelli 2014-04-02 18:06
<u>
and <\u>
in XML, and it's enough - Maksim Dmitriev 2014-05-06 11:49
<string name="not_registered">Not Registered? Click <u>here</u> to register!"</string>
Anyone know why? The underline is starting in the space immediately after the "k" in "Click" - Kevin Bright 2018-10-26 01:16
Use this:
TextView txt = (TextView) findViewById(R.id.Textview1);
txt.setPaintFlags(txt.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
UnderlineSpan
- Giulio Piancastelli 2014-04-02 18:08
<resource>
<string name="your_string_here">This is an <u>underline</u>.</string>
</resources>
If it does not work then
<resource>
<string name="your_string_here">This is an <u>underline</u>.</string>
Because "<" could be a keyword at some time.
And for Displaying
TextView textView = (TextView) view.findViewById(R.id.textview);
textView.setText(Html.fromHtml(getString(R.string.your_string_here)));
First of all go to String.xml file
you can add any html attributes like , italic or bold or underline here.
<resource>
<string name="your_string_here">This is an <u>underline</u>.</string>
</resources>
Another way to do it, is creating a custom component extending TextView. It's good for cases where you need to have multiple underlined TextViews.
Here's the code for the component:
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);
}
}
And how to use it in xml:
<com.myapp.components.LinkTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hello World!" />
I used below method, it's work for me. below is example for Button but we can use in TextView as well.
Button btnClickMe= (Button) findViewById(R.id.btn_click_me);
btnClickMe.setPaintFlags(btnClickMe.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
You can use the markup below, but note that if you set the textAllCaps
to true
the underline effect would be removed.
<resource>
<string name="my_string_value">I am <u>underlined</u>.</string>
</resources>
Note
Using textAllCaps with a string (login_change_settings) that contains markup; the markup will be dropped by the caps conversion
The textAllCaps text transform will end up calling toString on the CharSequence, which has the net effect of removing any markup such as . This check looks for usages of strings containing markup that also specify textAllCaps=true.
To complete Bhavin answer. For exemple, to add underline or redirection.
((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>
and you can know compatible tag here : http://commonsware.com/blog/Android/2010/05/26/html-tags-supported-by-textview.html
There are different ways to achieve underlined text in an Android TextView.
1.<u>This is my underlined text</u>
or
I just want to underline <u>this</u> word
2.You can do the same programmatically.
`textView.setPaintFlags(textView.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);`
3.It can be done by creating a SpannableString and then setting it as the TextView text property
SpannableString text = new SpannableString("Voglio sottolineare solo questa parola");
text.setSpan(new UnderlineSpan(), 25, 6, 0);
textView.setText(text);
style="text-decoration: underline;"
ρяσѕρєя K 2012-04-04 20:53