Как удалить подчеркивание текста ссылки в 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". Но когда я использовал это, текст и цвет кнопок меняются, и я не хочу этого.



Пожалуйста, Помогите.

455   4  

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

    Ничего не найдено.