成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android中TextView文字自動(dòng)生成鏈接

移動(dòng)開發(fā) Android
在Android中,TextView是我們最常用的用來顯示文本的控件。一般情況下,TextView中的文本都是一個(gè)樣式。那么如何對(duì)于TextView中各個(gè)部分的文本來設(shè)置字體,大小,顏色,樣式,以及超級(jí)鏈接等屬性呢?對(duì),本文介紹了TextView文字自動(dòng)生成鏈接的方法。

下面我們通過具體操作來演示一下如何實(shí)現(xiàn)TextView文字自動(dòng)生成鏈接。

一、在Layout文件中設(shè)置TextView的屬性

  1. android:autoLink="email|phone|web"   

這樣Android就會(huì)自動(dòng)識(shí)別郵件、電話號(hào)碼、網(wǎng)址了,點(diǎn)擊時(shí)會(huì)出發(fā)不同的Intent進(jìn)行處理。
二、使用Linkify

Linkify是一個(gè)輔助類,通過RegEx樣式匹配,自動(dòng)地在TextView類(和繼承的類)中創(chuàng)建超鏈接。

符合特定的RegEx樣式的文本會(huì)被轉(zhuǎn)變成可點(diǎn)擊的超鏈接,這些超鏈接隱式地調(diào)用startActivity(new Intent(Intent.ACTION_VIEW, uri)),符合的文本會(huì)作為目標(biāo)URI。

你可以指定任意的字符串樣式為鏈接;方便地,Linkify類提供了預(yù)置的通用內(nèi)容類型(如電話號(hào)碼和e-mail、web地址)。

本地的鏈接類型

Linkify.addLinks靜態(tài)方法接受一個(gè)View來制作鏈接,還包括一個(gè)或多個(gè)支持的默認(rèn)內(nèi)容類型的位結(jié)果。Linkify類提供了一些內(nèi)容類型:WEB_URLS、EMAIL_ADDRESSES、PHONE_NUMBERS和ALL.

接下來的代碼片段顯示如何為TextView制作鏈接顯示web和e-mail地址為超鏈接。當(dāng)點(diǎn)擊時(shí),它們會(huì)相應(yīng)地打開瀏覽器或e-mail應(yīng)用程序。

  1. TextView textView = (TextView)findViewById(R.id.myTextView);   
  2. Linkify.addLinks(textView, Linkify.WEB_URLS|Linkify.EMAIL_ADDRESSES);   

你可以在layout資源里使用android:autoLink特性來為View制作鏈接。它支持一個(gè)或多個(gè)(用|分割)自定義的值:none、web、email、phone或all。接下來的XML片段顯示了如何為電話號(hào)碼和e-mail地址添加超鏈接:

  1. <TextView   
  2. android:layout_width=”fill_parent”   
  3. android:layout_height=”fill_parent”   
  4. android:text=”@string/linkify_me”   
  5. android:autoLink=”phone|email”   
  6. />   

創(chuàng)建自定義的鏈接字符串

為了定義自己的鏈接字符串,你需要?jiǎng)?chuàng)建一個(gè)RegEx樣式來匹配文本,進(jìn)而顯示成超鏈接。

和本地類型一樣,通過調(diào)用Linkify.addLinks來指定目標(biāo)View,但這次,傳入的是新的RegEx樣式。你還可以傳入一個(gè)前綴,當(dāng)鏈接點(diǎn)擊時(shí),它會(huì)添加到目標(biāo)URI上。

接下來的例子顯示了一個(gè)View鏈接到由Android Content Provider(下一章你會(huì)創(chuàng)建)提供的地震數(shù)據(jù)。與包含所有的情況相比,鏈接樣式能匹配任何以“quake”開頭后跟一個(gè)數(shù)字的文本。在Intent被觸發(fā)前,內(nèi)容會(huì)被添加到URI上。

  1. int flags = Pattern.CASE_INSENSITIVE;   
  2. Pattern p = Pattern.compile(“\\bquake[0-9]*\\b”, flags);   
  3. Linkify.addLinks(myTextView, p, “content://com.paad.earthquake/earthquakes/”);   

Linkify還支持TranformFilter和MatchFilter接口。它們提供一些對(duì)目標(biāo)URI的額外控制和定義匹配字符串,它們的使用如下的框架代碼所示:

  1. Linkify.addLinks(myTextView, pattern, prefixWith, new MyMatchFilter(), new MyTransformFilter()); 

使用Match Filter

在你定義的MatchFilter中實(shí)現(xiàn)acceptMatch方法,來為RegEx樣式匹配添加額外的條件。當(dāng)一個(gè)潛在的匹配發(fā)現(xiàn)時(shí),acceptMatch被觸發(fā),匹配的開始點(diǎn)和結(jié)束點(diǎn)(包括被查找的整個(gè)文本)以參數(shù)的形式傳入。

接下來的代碼顯示了一個(gè)MatchFilter的實(shí)現(xiàn),它取消任何之前是一個(gè)“!”的匹配。

  1. class MyMatchFilter implements MatchFilter {   
  2. <span style="white-space:pre">  </span>public boolean acceptMatch(CharSequence s, int start, int end) {   
  3. <span style="white-space:pre">  </span>return (start == 0 || s.charAt(start-1) != ‘!’);   
  4. <span style="white-space:pre">  </span>}   
  5. }   

使用Transform Filter

Transform Filter為格式化文本字符串提供了更大的自由度,允許你修改由鏈接文本自動(dòng)生成的隱式URI。減少鏈接文本和目標(biāo)URI的耦合能更加自由地決定如何顯示數(shù)據(jù)字符串給用戶。

使用Transform Filter,在你定義的TransformFilter中實(shí)現(xiàn)transformUrl方法。當(dāng)Linkify找到正確的匹配后,它會(huì)調(diào)用transformUrl,傳入使用的RegEx樣式和它創(chuàng)建的默認(rèn)URI字符串。你可以修改匹配的字符串,然后返回一個(gè)適合給其它Android應(yīng)用程序“看”的URI。

下面的TransformFilter實(shí)現(xiàn)將匹配的文本轉(zhuǎn)換成小寫的URI:

  1. class MyTransformFilter implements TransformFilter {   
  2. <span style="white-space:pre">  </span>public String transformUrl(Matcher match, String url) {   
  3. <span style="white-space:pre">  </span>return url.toLowerCase();   
  4. <span style="white-space:pre">  </span>}   
  5. }   

看完這篇文章為您介紹的TextView文字自動(dòng)生成鏈接的方法,相信對(duì)您一定有所啟發(fā)。

責(zé)任編輯:閆佳明 來源: csdn
相關(guān)推薦

2012-12-28 14:23:12

Android開發(fā)TextView

2010-09-06 13:21:04

TextViewAndroid

2012-12-25 13:54:28

AndroidTextview

2013-04-07 10:09:00

Android開發(fā)TextView屬性

2017-04-20 12:45:08

AndroidTextView

2011-09-14 11:31:26

Android API

2009-06-26 10:12:00

Hibernate自動(dòng)

2009-07-16 11:21:19

ibatis主鍵自動(dòng)生成

2010-09-08 15:25:09

自動(dòng)化測(cè)試技術(shù)網(wǎng)站鏈接測(cè)試

2012-06-12 15:43:22

PHP

2010-09-10 10:09:26

Android

2010-03-01 16:40:40

Linux Makef

2010-02-25 15:11:48

Linux Makef

2023-11-15 08:27:46

Linux系統(tǒng)

2010-08-30 13:29:06

超鏈接CSS

2009-07-14 18:24:31

ibatis映射文件

2009-09-24 16:56:12

Hibernate S

2019-02-15 15:07:39

AndroidiOS移動(dòng)系統(tǒng)

2010-10-19 15:31:40

sql server觸

2009-07-14 17:12:26

ibatis自動(dòng)代碼生
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美视频在线播放 | 久久精品青青大伊人av | 中国免费黄色片 | av在线天堂 | 成人片网址 | 精品国产乱码久久久久久蜜臀 | 91资源在线 | 国产一级电影网 | 亚洲高清电影 | 免费国产视频 | 九九精品影院 | 天天干天天爱天天操 | 免费亚洲成人 | 久久99精品视频 | 久久精品国产亚洲 | 国产xxxx搡xxxxx搡麻豆 | 国产精品久久久久久模特 | 精品久久久久久久久久久久 | 国产高清视频一区二区 | 成人免费大片黄在线播放 | 成人三级av| av在线免费观看网址 | 国产欧美日韩一区 | 日本精品国产 | 天天干天天色 | 在线免费观看成人 | 亚洲色图婷婷 | 久久国产一区 | 成人一区av | 久久久黄色 | 国产精品99免费视频 | 精品视频在线一区 | 精品视频成人 | 亚洲成人免费电影 | 国产黄色电影 | 午夜精品久久久久久久99黑人 | 五月激情六月婷婷 | 黄色一级电影在线观看 | avhd101在线成人播放 | 免费啪啪 | 久久成人综合 |