我不希望按钮上的链接加下划线。我是这样做的:
string.xml
<string name="link"><a href="http://web.com/web.php">mighty web</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,链接没有下划线。我轻拍它。有用。大。 然后我关闭App并再次打开它。链接带有下划线。 当我重新运行apk时,它没有再次加下划线,直到我点击它。
任何想法如何解决这个问题?是否被视为&#34;访问链接&#34;第一次点击后?我没有想法。
答案 0 :(得分: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);
}