iT邦幫忙

2022 iThome 鐵人賽

DAY 26
0
Mobile Development

新手學 Swift UI 與 Android Studio 的學習路程 -- 跟著我們一起踏上 App 開發之旅吧~系列 第 26

[Day26] Android Studio RadioGroup/Radiobutton & Checkbox 常用功能介紹

  • 分享至 

  • xImage
  •  

首先介紹一下Radiobutton,這是一個單選的按鍵,大多是出現在選擇性別、投票、滿意度調查...等。而通常會讓Radiogroup包住全部的Radiobutton來進行單選。以下為實作例子。

<RadioGroup
            android:id="@+id/radioGroup"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="200dp"
            android:layout_marginTop="400dp">

            <RadioButton
                android:id="@+id/radio1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:checked="true"
                android:text="One" />

            <RadioButton
                android:id="@+id/radio2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"

                android:text="Two" />

            <RadioButton
                android:id="@+id/radio3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Three" />

        </RadioGroup>

呈現畫面為:

執行時也就只能擇一選擇,如果是每個RadioButton都分開拉的話那就無法達到單選的效果了

再來介紹Checkbox功能,Checkbox是一種多選選項的按鈕,與Radiobutton稍微的不太一樣,不需要組成一個群組,每個Checkbox都是獨立存在的。
而在這裡我們來實作插入圖片的checkbox。

首先,創建三個選項

<CheckBox
        android:id="@+id/checkBox1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="baseball"
        android:drawableRight="@drawable/checkbox_style"
        android:background="@drawable/checkbox_bg"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.211"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.58" />

    <CheckBox
        android:id="@+id/checkBox2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="badminton"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.894"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.578" />

    <CheckBox
        android:id="@+id/checkBox3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="soccer"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.531"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.578" />

再來要在drawable建立新的xml檔,這裡命名為checkbox_style.xml,此程式碼是讓每個選項多一張圖片在右側顯示。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
    android:constantSize="true" >

    <item android:state_pressed="true"
    android:drawable="@android:drawable/btn_star" />
    <item android:state_checked="true"
    android:drawable="@android:drawable/btn_star_big_on" />

    <item android:drawable="@android:drawable/btn_star_big_off" />

</selector>

再來是設定背景顏色,檔名為checkbox_bg.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
    android:constantSize="true" >

    <item android:state_pressed="true"
    android:drawable="@android:color/holo_orange_light" />

    <item android:state_checked="true"
    android:drawable="@android:color/holo_purple" />

    <item android:drawable="@android:color/transparent" />
</selector>

最後就是在原本的checkbox加上這兩行

android:drawableRight="@drawable/checkbox_style"
        android:background="@drawable/checkbox_bg"

以下為呈現畫面

是不是與其他人所做出的checkbox不太一樣呢?


今天的教學到這邊,我們明天見。


上一篇
[Day25] Android Studio button & imagebutton 常用語法
下一篇
[Day27] Android Studio Java基本語法教學
系列文
新手學 Swift UI 與 Android Studio 的學習路程 -- 跟著我們一起踏上 App 開發之旅吧~30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言