本文執行個體講述了Android使用TextView實現無底線超連結的方法。分享給大家供大家參考,具體如下:
Android系統預設把網址、電話、地圖(geo地址)、郵箱等轉換為超連結。
具體請查看 android:TextView簡單設定文本樣式和超連結的方法
和HTML中的一樣,預設超連結都帶底線的,下面的方案可以在TextView中去掉超連結的底線:
1、重寫ClickableSpan類來去掉底線樣式(系統預設使用ClickableSpan來封裝超連結)
//無底線超連結,使用textColorLink、textColorHighlight分別修改超連結前景色彩和按下時的顏色private class NoLineClickSpan extends ClickableSpan { String text; public NoLineClickSpan(String text) { super(); this.text = text; } @Override public void updateDrawState(TextPaint ds) { ds.setColor(ds.linkColor); ds.setUnderlineText(false); //去掉底線 } @Override public void onClick(View widget) { processHyperLinkClick(text); //點擊超連結時調用 }}
2、把超連結文本封裝為NoLineClickSpan對象,並添加到TextView中
TextView tv = findViewById(R.id.tv_click);SpannableString spStr = new SpannableString("雲棲社區-->http://www.jb51.net");ClickSpan clickSpan = new NoLineClickSpan(vo); //設定超連結spStr.setSpan(clickSpan, 0, str.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);tv.append(spStr);tv.setMovementMethod(LinkMovementMethod.getInstance());
PS:不用把TextView的屬性autoLink設為”all”.
3、設定超連結為可點擊狀態
tv.setMovementMethod(LinkMovementMethod.getInstance());
PS:在NoLineClickSpan類中實現onClick()回調方法.
更多關於Android相關內容感興趣的讀者可查看本站專題:《Android開發入門與進階教程》、《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android基本組件用法總結》、《Android視圖View技巧總結》、《Android布局layout技巧總結》及《Android控制項用法總結》
希望本文所述對大家Android程式設計有所協助。