2015-08-06 3 views
0

Je ne voulais pas que le lien sur le bouton soit souligné. Je l'ai fait de cette façon:Android, bouton, lien souligné

string.xml

<string name="link">&lt;a href="http://web.com/web.php">mighty&#10;web&lt;/a></string> 

activity.xml

<Button 
     android:id="@+id/web" 
     android:layout_width="160dip" 
     android:layout_height="160dip" 
     android:layout_marginLeft="2dp" 
     android:background="@drawable/bigroundbutton" 
     android:textColorLink="@android:color/white" 
     android:textSize="30sp" /> 

bigroundbutton.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="oval"> 
<solid android:color="#3a5795" /> 
<corners android:bottomRightRadius="160dip" 
    android:bottomLeftRadius="160dip" 
    android:topRightRadius="160dip" 
    android:topLeftRadius="160dip"/> 

activity.java

Button but = (Button) findViewById(R.id.web); 
    Spannable s = (Spannable) Html.fromHtml(getResources().getString(R.string.link)); 
    URLSpan[] spans = s.getSpans(0, s.length(), URLSpan.class); 
    for (URLSpan span: spans) { 
     int start = s.getSpanStart(span); 
     int end = s.getSpanEnd(span); 
     s.removeSpan(span); 
     span = new URLSpanline_none(span.getURL()); 
     s.setSpan(span, start, end, 0); 
    } 
    but.setText(s); 

    ...................... 

     private class URLSpanline_none extends URLSpan { 
     public URLSpanline_none(String url) { 
      super(url); 
     } 
     @Override public void updateDrawState(TextPaint ds) { 
      super.updateDrawState(ds); 
      ds.setUnderlineText(false); 
     } 
    } 

Tout fonctionne bien. Je cours apk, le lien n'est pas souligné. Je tape dessus. Ça marche. Génial. Ensuite, je ferme App et l'ouvrir à nouveau. Le lien est souligné. Quand je relance apk, il n'est pas souligné de nouveau, jusqu'à ce que je tape dessus.

Des idées pour résoudre ce problème? Est-il considéré comme "lien visité" après le premier robinet? Je n'ai plus d'idées.

+0

essayez d'utiliser: @android: couleur/transparent – Aakash

+0

Ensuite, le texte sur le bouton est invisible – JohnK

+0

android: textColorLink = "@ android: couleur/transparent" – Aakash

Répondre

0

Un problème avec la manipulation du lien vous-même?

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="mighty web" 
    android:tag="http://web.com/web.php" 
    android:clickable="true" 
    android:onClick="openUrl"/> 

public void openUrl(View v){ 
    String url = v.getTag().toString(); 
    Intent i = new Intent(Intent.ACTION_VIEW); 
    i.setData(Uri.parse(url)); 
    startActivity(i); 
}