Как удалить подчеркивание текста ссылки в Android?
У меня есть кнопка и ее текст, я повторяю его из строки.xml т. е.
Я объявил текст кнопки в res / values в строках.xml как
<string name="Google"><a href=""http://www.google.com">Google</a></string>
Я изменил цвет текста с синего на белый, но как удалить подчеркивание?
в моем.java-файл я использую только setMovementMethod(LinkMovementMethod.getInstance());, чтобы сделать ссылку clickabale... Я не использовал Linkify, webview или что-то вроде формы.Формат html...
все работает нормально. Я просто хочу удалить подчеркивание под этим текстом" Google"...
Есть ли какой-либо способ сделать это в в XML?
Я даже использовал android:autoLink="all". Но когда я использовал это, текст и цвет кнопок меняются, и я не хочу этого.
Пожалуйста, Помогите.
4 ответов:
TextView text=(TextView) findViewById(R.id.text); String value = "<html> click to go <font color=#757b86><b><a href=\"http://www.google.com\">google</a></b></font> </html>"; Spannable spannedText = (Spannable) Html.fromHtml(value); text.setMovementMethod(LinkMovementMethod.getInstance()); Spannable processedText = removeUnderlines(spannedText); text.setText(processedText);Вот ваш removeUnderlines ()
public static Spannable removeUnderlines(Spannable p_Text) { URLSpan[] spans = p_Text.getSpans(0, p_Text.length(), URLSpan.class); for (URLSpan span : spans) { int start = p_Text.getSpanStart(span); int end = p_Text.getSpanEnd(span); p_Text.removeSpan(span); span = new URLSpanNoUnderline(span.getURL()); p_Text.setSpan(span, start, end, 0); } return p_Text; }Также создайте класс URLSpanNoUnderline.java
import co.questapp.quest.R; import android.text.TextPaint; import android.text.style.URLSpan; public class URLSpanNoUnderline extends URLSpan { public URLSpanNoUnderline(String p_Url) { super(p_Url); } @Override public void updateDrawState(TextPaint p_DrawState) { super.updateDrawState(p_DrawState); p_DrawState.setUnderlineText(false); p_DrawState.setColor(R.color.info_text_color); } }Используя эту строку, вы также можете изменить цвет этого текста
p_DrawState.setColor(R.color.info_text_color);
После долгих попыток, наконец, я нашел решение. Я удалил ссылку из строки.XML и добавил этот код в мой java-файл.
И это сработало идеально.Button btnGoogle = ( Button GoogleAlert.findViewById( R.id.btnGoogle ); btnGoogle.setMovementMethod( LinkMovementMethod.getInstance() ); btnGoogle.setOnClickListener( new OnClickListener() { @Override public void onClick( View v ) { Uri uri = Uri.parse( "http://www.google.com" ); Intent intent = new Intent( Intent.ACTION_VIEW, uri ); startActivity( intent ); buyAlert.dismiss(); } } );
Вы добавляете
style=\"text-decoration:none\"в свой тег<a>.Для получения дополнительной информации о том, как следует форматировать строковые ресурсы, ознакомьтесь с документациейString Resources Documentation .
TextView text=(TextView) findViewById(R.id.text); final String s = text.getText(); text.setText(""); text.setText(s);Вот и все, ребята))
Comments