Jollen 的 Android 教學,#5: 使用 View 的 XML 屬性

jollen 發表於 January 4, 2009 10:49 PM

上一篇文章介紹了 XML-based layout 後,發現這是一個很方便,而且有用的 UI 安排方式。以圖1為例,我們現在想要做出一個應用程式,讓文字的超鍊結(hyperlink)可以被使用者點選,並自動呼叫瀏覽器連到該網站,這樣的應用程式該如何撰寫呢?請依以下步驟修改程式碼。

xml_layout_attributes_1.png
圖1:如何設計一個可點擊 URL link 的應用程式?

View 的 XML 屬性

每一個 View 都有許多屬性,我們可以利用 XML 來描述每一個 View 的屬性,進而達到控制物件的效果。以 TextView 為例,有一個「android:autoLink」屬性可以控制「是否要自動將網址轉換為可點擊的 URL 文字」。

要怎麼知道每一個 View 都哪些屬性呢?這個時候就要祭出 Android SDK 的 documentation 了。以 TextView 為例,透過以下的說明,可以了解 TextView 有哪些屬性,以及該屬性的用途:

http://code.google.com/intl/zh-TW/android/reference/android/widget/TextView.html#attr_android:autoLink

原來,只需要透過「autoLink」屬性,並將此屬性設定為「web」即可做出我們想要的功能。

修改 main.xml

將 main.xml 修改如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"    
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="Jollen's Blog - http://www.jollen.org/blog"
    android:autoLink="web"
    />
</LinearLayout>

我們為 TextView 物件新增一個「android:autoLink」的屬性,並將此屬性設定為「web」,以後只要「text」屬性裡出現 URL,TextView 就會自動將 URL「文字」轉換成可點擊的 link。

程式執行時,只要點擊 link,就會自動啟動瀏覽器,並連接該網址,如下圖。

xml_layout_attributes_2.png

讀者留言 (2)

  • apple 於 January 27, 2010 02:19:

    請問有給字串的字型變化的屬性嗎?
    現在的2.1有新的套件功能嗎?
    不好意思,我是初學者︿︿

  • studying 於 September 10, 2010 01:47:

    好奇怪
    如果直接複製Jollen's Blog - http://www.jollen.org/blog
    這一段到strings.xml內
    就會產生錯誤
    好像是不能有'這個符號
    如果直接打在TextView內就沒這個問題

留言功能維護中。將於近日重新開放。

連絡作者

Jollen Chen,Moko365(仕橙3G教室)講師,熱愛研究 Linux 與 Android 技術。曾為 Motorola、HTC、Foxconn、LG、OPPO、騰迅、廣達電腦、緯創、仁寶等超過 50 家企業講授課程。目前在 MokoVersity 擔任軟體工程師,撰寫 Node.js 程式,也在幾家科技廠兼任 Android Framework 研發顧問。您可透過電子郵件 <jollen (at) jollen (dot) org> 或這裡與我連絡。