iT邦幫忙

2023 iThome 鐵人賽

DAY 11
0

前言
Spinner 是 Android 開發中的一個 UI 元件,它通常用於實現下拉式選單。下拉式選單是一種常見的使用者介面元素,它允許用戶從一個選項清單中選擇一個值。Spinner 提供了一個視覺上的按鈕,當用戶點擊該按鈕時,會彈出一個列表,用戶可以在該列表中選擇適當的項目,在這裡我會介紹兩種方法來教大家Spinner的新增方式。結果圖如下
https://ithelp.ithome.com.tw/upload/images/20230815/20161502NG7AmqSIVV.png!https://ithelp.ithome.com.tw/upload/images/20230815/20161502P5ERlI1QMH.png


activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <LinearLayout
        android:layout_width="409dp"
        android:layout_height="219dp"
        android:layout_marginTop="96dp"
        android:orientation="vertical"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:gravity="center"
            android:text="我的下拉式選單"
            android:textColor="@color/black"
            android:layout_weight="1" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="2"
            android:orientation="horizontal">

            <Spinner
                android:id="@+id/spinner"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1" />

            <Spinner
                android:id="@+id/spinner2"
                android:layout_width="0dp"
                android:entries="@array/ticket"
                android:layout_height="match_parent"
                android:layout_weight="1" />
        </LinearLayout>

        <TextView
            android:id="@+id/textView"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="7"
            android:gravity="center"
            android:text="TextView" />

    </LinearLayout>

![https://ithelp.ithome.com.tw/upload/images/20230815/201615020jMvA3sGQa.png](https://ithelp.ithome.com.tw/upload/images/20230815/201615020jMvA3sGQa.png)

Java code

package com.example.myapplicationspinner;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;

import java.util.Arrays;
import java.util.List;

public class MainActivity extends AppCompatActivity {
    private Spinner MySpinner;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ById();//綁定元件
        setMySpinner();//set spinner item
    }
    //綁定元件
    public void ById(){
        MySpinner = findViewById(R.id.spinner);
    }
    //set spinner item
    public void setMySpinner() {
        String SpinnerItem[] = {"台北市","台中市","南投縣","台南市"};

        ArrayAdapter adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, SpinnerItem);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        MySpinner.setAdapter(adapter);

    }

}

方法二(使用String.xml)

  1. 打開String.xml
    https://ithelp.ithome.com.tw/upload/images/20230815/20161502ZOctD45YxG.png
  2. 在String.xml打入
<resources>
    <string name="app_name">My Application Spinner</string>
    <string-array name="ticket">
        <item>全票</item>
        <item>半票</item>
        <item>學生票</item>
        <item>敬老票</item>
    </string-array>
</resources>
  1. 在main_activity.xml裡的Spinner補上這行
android:entries="@array/ticket"

----總結----
Spinner 的一些重要特點和用途:

  1. 選項選擇: Spinner 主要用於顯示選項清單,用戶可以通過點擊 Spinner 並選擇其中一個選項。這對於讓用戶從預定的選擇中進行選擇非常有用。

  2. 資料綁定: 你可以通過 ArrayAdapter 或其他自定義的 Adapter 來將數據與 Spinner 綁定。這意味著你可以從資料源(例如字串陣列、資料庫、API 回應等)中提取選項,然後將其顯示在 Spinner 中。

  3. 自訂外觀: 你可以自訂 Spinner 的外觀,包括展開時的選單佈局、選擇選項的外觀等,以適應你的應用程式設計。

  4. 動態更新: 你可以在運行時動態更新 Spinner 中的選項。這對於在使用者與應用程式互動的過程中,根據不同情況提供不同的選擇非常有用。

  5. 事件處理: 你可以設置監聽器來監聽 Spinner 中選項的選擇事件。這讓你能夠在用戶進行選擇時執行特定的操作,例如根據所選的項目更新其他部分的界面。

Spinner 在許多場景中都很有用,例如:

  • 在設定畫面中讓用戶選擇語言、主題等設定。
  • 在搜尋選項時,提供一個篩選選項的界面元素。
  • 在表單中讓用戶選擇日期、時間等。
  • 在遊戲中讓玩家選擇角色或遊戲難度等。
  • 總之,Spinner 是 Android 開發中常見且有用的 UI 元件,用於實現下拉式選單和選項的選擇。

上一篇
Day10 - 製作一個簡單身高和體重BMI的計算器
下一篇
Day12 - 小型火車購票功能 介紹 Spinner 使用法方
系列文
Android studio使用過程與開發說明30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言