2015-08-06 6 views
0

Я не хочу, чтобы ссылка на кнопку была подчеркнута. Я сделал это так:Android, кнопка, ссылка underline

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); 
     } 
    } 

Все работает нормально. Я запускаю apk, ссылка не подчеркнута. Я коснусь его. Оно работает. Отлично. Затем я закрываю приложение и открываю его снова. Ссылка подчеркнута. Когда я снова запускаю apk, он не подчеркивается снова, пока я не коснусь его.

Любые идеи, как исправить это? Рассматривается ли это «посещенная ссылка» после первого нажатия? У меня нет идей.

+0

попробуйте использовать: @android: цвет/прозрачный – Aakash

+0

Затем текст на кнопке невидим – JohnK

+0

андроида: textColorLink = "@ андроид: цвет/прозрачный" – Aakash

ответ

0

Любая проблема с обработкой ссылки самостоятельно?

<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); 
}