常用UI元件介紹
講授:洪國龍老師

回首頁   Button類元件   Spinner元件   日期及時間輸入元件   ListView元件   AlertDialog元件   範例練習

  • Button類元件

  • ToggleButton
  • ToggleButton是一個有開/關兩個狀態切換的按鈕,此元件繼承Button。
  • 屬性:
  • android:textOn:設定按鈕開啟時按鈕上所顯示的文字
  • android:textOff:設定按鈕關閉時所顯示的文字
  • android:checked:設定初始時是開或關,可設定的值true、false
  • ToggleButton元件的位置位於Form Widgets資料夾內。
  • 範例佈局程式碼中,示範了兩個分別在開與關狀態下顯示ON,OFF文字。
  • ImageButton
  • ImageButton使用方法與Button相同,差別是它可以讓使用者在Button上加上自己定義的圖案
  • 屬性:
  • android:src :設定按鈕上的圖片或色彩
  • android:cropToPadding : 剪裁圖片使其配合按鈕大小
  • android:scaleType : 控制圖片大小或位置,可設定的值如下
  • android:tint : 圖片上再重新著色
  • scaleType可以指定的值:
  • matrix(將原圖片置於元件的左上角,超出元件部分將剪裁掉)
  • fitXY(將圖片縮放不維持長寬比例,以填滿元件大小)
  • fitStart(將圖片依長寬比例縮放,直到圖片的寬或高符合元件大小,圖片置於元件的左上角)
  • fitCenter(將圖片依長寬比例縮放,直到圖片的寬或高符合元件大小,圖片置於元件的中間)
  • fitEnd(將圖片依長寬比例縮放,直到圖片的寬或高符合元件大小,圖片置於元件的右下角)
  • center(將原大小圖片置於元件的中間,超出元件外的部分將被裁剪)
  • centerCrop(將圖片依長寬比例縮放,直到圖片符合元件最寬或最高的大小,超出部分將剪裁掉)
  • centerInside(若圖片寬或高大於元件大小,則將圖片依長寬比例縮小,直到圖片的寬或高符合元件大小,圖片置於元件的中間;若圖片寬或高小於或等於元件大小,則直接將原圖片置於元件的中間)
  • RadioButton
  • 單選按鈕,用來表示圈選某項資料的元件,繼承自Button下的CompoundButton。
  • 多選一時,需在多個RadioButton標籤外,加上<RadioGroup>。
  • RadioButton元件的位置位於Form Widgets資料夾內,通常使用時會先將RadioGroup拖曳到畫面中,再將RadioButton元件拖入。
  • RadioGroup屬性 :
  • android:orientation : 設定單選群組中的排列方式(horizontal, vertical)。
  • android:checkedButton : 設定單選群組中,哪個選項在初始時為被選取的狀態。
  • 範例佈局建立兩個單選選項,在RadioGroup 標籤中加入android:checkedButton="@id/radioButton",將底下代號為radioButton的選項(男)作為預設選取。
  • 使用程式取得RadioButton的值:
  • 範例:


  • CheckBox
  • 多選按鈕,提供使用者複選的功能。
  • 屬性
  • android:checked:初始時是選取或未選取,可設定的值: true, false。
  • 使用程式取得CheckBox的值
  • 範例(使用陣列)


    [ 回頂端 ]

    • Spinner元件

  • Spinner
  • Spinner元件為一種下拉式選單。與ListView元件類似,可顯示多個項目,但不具choiceMode模式(單選、複選)。
  • 屬性 :
  • android:entries 使用資源檔的方式,設定選單的內容(字串陣列資源),如果要動態改變內容,可使用程式的方式來設定(在進階元件介紹)。

  • android:spinnerMode 設定選單模式,可設定的值:dialog、dropdown。
  • android:prompt設定跳出選單對話框的標題文字,值必須使用@string引用定義的字串。
  • Spinner元件事件處理的重要方法:
    • setOnItemSelectedListener(...):設定Spinner的事件處理處理函式,當選一個新的項目時,會觸發此函式。註:不要誤選setOnItemClickListener,Spinner不能使用此函式。
    • getSelectedItemPosition():取得Spinner目前選定的項目的位置。
    • getSelectedItem():取得Spinner目前選定的項目,如果此項目為字串,要再加上toString()函式,來取得此字串。。

    範例:


    [ 回頂端 ]

    • 日期及時間輸入元件

  • DatePicker(年月日挑選元件)
  • 重要屬性
    • android:minDate可選起始日期
    • android:maxDate可選結束日期
  • DatePicker元件的方法:
    • getDayOfMonth():取得日期(1-31)
    • getMonth():取得月份(0-11)
    • getYear():取得年份(4位數)
  • 程式範例 :
  • TimePicker(時間輸入元件)
  • TimePickerDialog(時間輸入對話方塊)
  • [ 回頂端 ]

    • ListView元件

  • ListView(條列式選單)
  • 條列式選單可以用來顯示提供單選或複選的列表資料。
  • 屬性:
  • android:choiceMode:選擇模式(none、singleChoice、multipleChoice、multipleChoiceModal)
  • android:entries:選單中的選項,設定值需引用陣列資源,如: @array/data
  • android:divider:分隔線顏色或圖示,設定值可為顏色或圖片
  • android:dividerHeight:分隔線高度,設定值為整數
  • 使用程式顯示資料(Adapter與AdapterView)
  • 當我們要使用程式來顯示資料,我們必須使用Adapter元件。
  • Adapter元件用來將資料來源繫結到Spinner或ListView之類的AdapterView元件。
  • Adapter的種類
    • ArrayAdapter
    • 將一組資料繫結到AdapterView。

    • SimpleAdapter
    • 自訂AdapterView外觀的資料繫結。

    • BaseAdapter
    • 抽象類別,適用於需要自訂AdapterView外觀等的Adapter。

  • 以下是四種內建的listView一列資料的佈局:
    • android.R.layout.simple_list_item_1 :
    • 只顯示一行文字

    • android.R.layout.simple_list_item_2 :
    • 顯示兩行文字,且一行字體較大另一行字體較小

    • android.R.layout.simple_list_item_single_choice :
    • 顯示一行文字,最右邊有單選元件,具一個TextView和一個RadioButton

    • android.R.layout.simple_list_item_multiple_choice :
    • 顯示一行文字,最右邊有多選元件,具一個TextView和一個CheckBox

  • ListView範例1:
  • 動物文字及圖檔

  • ListView範例2:
  • ListView範例3:
  • ListView範例4:
  • [ 回頂端 ]

    • AlertDialog元件

  • Toast與AlertDialog
  • 使用Toast元件顯示訊息雖然很方便,但無法與使用者互動,因此顯示片刻後會自動消失。
  • AlertDialog元件顯示訊息後不會自動消失,可以製作按鈕與使用者互動,直到使用者按鈕後才關閉對話方塊並回應使用者的按鈕動作。
  • AlertDialog常用函式
  • 範例:
  • [ 回頂端 ]

    • 範例練習:星相血型分析
    star_blood.txt

    畫面設計:



    程式設計:


    [ 回頂端 ]