Spinner是一個widget,使用方式類似下拉式選單,Spinner允許使用者從一個選項中選出其中一個,當列表大於且超過螢幕大小時,會自動變成可捲軸。

小試身手小範例:

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="wrap_content"

    android:padding="10dip"

    >

    <TextView

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:layout_marginTop="10sp"

    android:textSize="20sp"

    android:text="Please select a color:"

    />

    <Spinner

    android:id="@+id/spinner01"

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:drawSelectorOnTop="true"   <!-— 註解一 -->

    android:prompt="@string/color_prompt"

    android:layout_marginTop="20sp"

    />

</LinearLayout>

下一步驟、新增Spinner元件之後,新增下列程式碼到strings.xml

res/value/strings.xml

<?xml version="1.0" encoding="utf-8"?>

<resources>

    <string name="hello">Hello World, TestExam001!</string>

    <string name="app_name">Spinner Application</string>

    <string name="color_prompt">Choose a color</string>

</resources>

下一步驟、在res/value/建立一個名為arrays.xml的文件  (切勿命名為array.xml)

res/value/arrays.xml

<?xml version="1.0" encoding="utf-8"?>

<resources>

    <string-array name="colors">

        <item>Red</item>

        <item>Blue</item>

        <item>Pink</item>

        <item>Orange</item>

        <item>Green</item>

        <item>Yellow</item>

        <item>White</item>

        <item>Black</item>

        <item>Brown</item>

    </string-array>

</resources>

Java

import android.app.Activity;

import android.os.Bundle;

import android.view.ContextMenu.ContextMenuInfo;

import android.view.Menu;

import android.view.View;

import android.widget.ArrayAdapter;

import android.widget.AutoCompleteTextView;

import android.widget.Button;

import android.widget.Spinner;

publicclass TestExam001 extends Activity {

 

    /** Called when the activity is first created. */

    @SuppressWarnings("unchecked")  //注解二

    @Override

    publicvoid onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

       

        Spinner SpinnerS = (Spinner)findViewById(R.id.spinner01);

        //設定功能表項目陣列,使用createFromResource()

        ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.colors,

              android.R.layout.simple_spinner_item);

        //設定選單

        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        //設定adapter

        SpinnerS.setAdapter(adapter);

    }

}

註一、android:drawSelectorOnTop="true"

When set to true, the selector will be drawn over the selected item. Otherwise the selector is drawn behind the selected item. The default value is false. 若設為true點擊某一項紀錄,顏色會顯示在最上面,記錄上的文字則會被遮住,此時文字就看不到了,反之若設為false,點擊某一項記錄,顏色會在記錄後面成為背景色,然而文字是清楚可看之。

註二、@SuppressWarnings("unchecked")

J2SE 5.0中標準的Annotation型態之一,它對編譯器說明某個方法中若有警示訊息,則加以抑制,不用在編譯完成後出現警訊。

Spinner01.jpg  

Spinner02.jpg  

arrow
arrow
    文章標籤
    android Spinner 下拉式選單
    全站熱搜

    S 發表在 痞客邦 留言(0) 人氣()