天天看點

在TextView中添加超連結

1.直接在xml檔案中配置autoLink屬性

autoLink屬性一共有六個值,其可選擇的屬性如下所示

  1. none:不比對任何類型的文字,預設為此選項。
  2. web:比對URL位址,單擊後打開浏覽器顯示位址。
  3. email:比對郵箱位址,單擊後打開郵箱發送郵件。
  4. phone:比對電話号碼,單擊後打開撥号界面。
  5. map:比對地圖位址,單擊後打開地圖選項。
  6. all:比對所有的格式,自動檢測web,phone,email,map四種格式。
<!-- 定義TextView标簽,加入autoLink節點值為web,text節點值為www.baidu.com -->
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:autoLink="web"
        android:text="www.baidu.com" />

    定義TextView标簽,加入autoLink節點值為email,text節點值為[email protected]
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:autoLink="email"
        android:text="[email protected]" />

    定義TextView标簽,加入autoLink節點值為phone,text值為10086
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:autoLink="phone"
        android:text="15596630691" />

    定義TextView标簽,加入autoLink節點值為map,text節點值為1812 Avenue K Plano,Texas 75074
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:autoLink="map"
        android:text="1912 Avenue K Plano,Texas 75074" />

   <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:autoLink="all"
       android:text="此處為 電話号碼,網址,地圖,郵箱" />
           

使用HTML語言

利用HTML語言顯示超連結

Tv.setText(Html.fromHtml("<a href='tel:15596630691'>打電話</a>,<a href='smsto:15596630691'>發短信</a>,<a href='[email protected]'>發郵件</a>,<a href='http://www.baidu.com'>Go百度</a>"));       Tv.setMovementMethod(LinkMovementMethod.getInstance());
           

3.在strings.xml中直接寫HTML,然後在TextView的xml中直接引用即可

strings.xml中的定義如下:

<string name="Tv"><a href='tel:15596630691'>打電話</a>,
        <a href='smsto:15596630691'>發短信</a>,
        <a href='mailto:[email protected]'>發郵件</a>,
        <a href='http://www.baidu.com'>Go百度</a></string>
           

TextView的XML定義如下:

<TextView
        android:id="@+id/Tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/Tv"/>
           

然後隻需要在Activity中設定該TextView為可點選狀态即可:

4.使用SpannableString實作超連結

關于spannableString的詳細使用參見SpannableString使用詳解,我們這裡就再次重複一下使用spannableString實作超連結功能:

SpannableString ss = new SpannableString("打電話,發短信,發郵件,Go百度");  
        ss.setSpan(new URLSpan("tel:15596630691"), , ,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
        ss.setSpan(new URLSpan("smsto:15596630691"), , ,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
        ss.setSpan(new URLSpan("mailto:[email protected]"), , ,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
        ss.setSpan(new URLSpan("http://www.baidu.com"), , ,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
        Tv.setText(ss);  
        Tv.setMovementMethod(LinkMovementMethod.getInstance()); 
           

demo下載下傳> http://download.csdn.net/detail/aiyuan1996/9597295