假若TextView文本中有電話號碼或者網址,我想通過點擊電話號碼或者網址就能實現打電話或者開啟網頁,android中已經為我們提供這樣的屬性和方法進行設定,大體可以分為三種:
1、設定TextView的autoLink屬性:他有幾個值all、web、phone、email等。當文中有這幾種類型的文本值時,點擊它將進入網頁、打電話或者email的activity,這是最簡單的方法
2、在文本值直接添加連結
(1)例如在string.xml檔案中:<string><a href=http://www.google.com>http://www.google.com</a> <a href="tel:18600000001">tel</a> </string>,同時設定TextView屬性setMovementMethod(LinkMovementMethod.getInstance());
(2)在代碼中使用Hteml.fromHtml構建文本
代碼
tv2.setText(
Html.fromHtml("the google url: " +
"<a href=\"http://www.google.com\">http://www.google.com</a><br/>" +
"the telephone: " +
"<a href=\"tel:18603045201\">18603045201</a>)"
));
tv2.setMovementMethod(LinkMovementMethod.getInstance());
3、使用SpanableString指定某段字串為連結文本
代碼
TextView tv3=(TextView)findViewById(R.id.tv3);
SpannableString ss=
new SpannableString("the google url: http://www.google.com 18600000001");
ss.setSpan(new URLSpan("http://www.google.com"),
16, 37, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(new URLSpan("tel:18603045201"),
38, 49, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv3.setText(ss);
tv3.setMovementMethod(LinkMovementMethod.getInstance());