前言
聲明
歡迎轉載,但請保留文章原始出處:)
正文
一、結構
public final class spinner extends absspinner
java.lang.object
android.view.viewgroup
android.widget.adapterview<t extends android.widget.adapter>
android.widget.absspinner
android.widget.spinner
二、概述

下拉清單(spinner)是一個每次隻能選擇所有項中一項的部件。它的項來自于與之相關聯的擴充卡中。
三、xml屬性
屬性名稱
描述
android:prompt
該提示在下拉清單對話框顯示時顯示。(譯者注:對話框的标題:
四、公共方法
public int getbaseline()
傳回這個控件文本基線的偏移量。如果這個控件不支援基線對齊,那麼方法傳回-1.
傳回值
傳回控件基線左邊邊界位置,不支援時傳回-1
(譯者注:這個類不知道幹什麼用,隻找到下面的代碼:
public class androidbamboo extends activity
{
public void oncreate( bundle savedinstancestate )
{
super.oncreate ( savedinstancestate );
spinner spinner = new spinner ( this );
spinner.setprompt( "500" );
string [ ] items = { "bam", "boo", "lab", "code", "programming", "framework", "android" };
arrayadapter array_adapter = new arrayadapter <string> ( this, android.r.layout.simple_spinner_item, items );
array_adapter.setdropdownviewresource ( android.r.layout.simple_spinner_dropdown_item );
spinner.setadapter ( array_adapter );
int baseline = spinner.getbaseline ( );
setcontentview ( spinner );
}
}
public charsequence getprompt()
傳回值
當對話框彈出的時候顯示的提示(譯者注:獲得彈出視圖上的标題字)
public void onclick(dialoginterface dialog, int which)
當點選彈出框中的項時這個方法将被調用。
參數
dialog 點選彈出的對話框
which 點選按鈕(如:button)或者點選位置
public boolean performclick()
如果它被定義就調用此視圖的onclicklistener(譯者注:例如可以在加載時預設彈出下拉清單)。
傳回值
為true一個指定的onclicklistener被調用,為false時不被調用。
public void setonitemclicklistener(adapterview.onitemclicklistener i)
spinner不支援item的點選事件,調用此方法将引發異常。
參數
l 這個監聽将被忽略
public void setpromptid(charsequence prompt)
設定對話框彈出的時候顯示的提示(譯者注:設定彈出視圖上的标題字)
prompt 設定的提示
public void setpromptid(int promptid)
prompted 當對話框顯示是顯示這個資源id所代表的提示。
五、受保護方法
protected void ondetachedfromwindow ()
當這個視圖從螢幕上解除安裝時候被調用。在這一點上不再繪制視圖。
protected void onlayout (boolean changed, int l, int t, int r, int b)
當view要為所有子對象配置設定大小和位置時,調用此方法。派生類與子項們應該重載這個方法和調用布局每一個子項。
參數
changed 這是這個視圖的一個新的大小或位置
l 相對父空間的左位置
t 相對父空間的頂端位置
r 相對父空間的右端位置
b 相對父空間的底部位置
參見
六、補充
文章連結
示例代碼
java代碼
public class spinneractivity extends activity {
/** called when the activity is first created. */
string mes = "wolf";
private static final string[] m_arr = {"第一組","第二組","第三組"};
@override
public void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
setcontentview(r.layout.main);
spinner s1 = (spinner)findviewbyid(r.id.spinner01);
s1.setprompt("請選擇顔色" );
//arrayadapter adapter = arrayadapter.createfromresource(this, r.array.spinnercolor,android.r.layout.simple_spinner_item);
arrayadapter<string> adapter = new arrayadapter<string>(this, android.r.layout.simple_spinner_item, m_arr);
adapter.setdropdownviewresource(android.r.layout.simple_spinner_dropdown_item);
s1.setadapter(adapter);
s1.setselection(1,true);
//s1.setpromptid(context_include_code);
int baseline = s1.getbaseline();
s1.performclick();
s1.setonitemselectedlistener(new spinner.onitemselectedlistener(){
public void onitemselected(adapterview<?> arg0, view arg1, int arg2, long arg3){
disptoast("選擇的是"+m_arr[arg2]);
arg0.setvisibility(view.visible);
}
public void onnothingselected(adapterview<?> arg0){
//
});
toast.maketext(this, s1.getprompt() ,toast.length_long).show();
public void disptoast(string str){
toast.maketext(this, str, toast.length_short).show();
}
xml資源檔案
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">hello world, spinneractivity!</string>
<string name="app_name">spinner測試</string>
<string-array name="spinnercolor">
<item>紅色</item>
<item>綠色</item>
<item>白色</item>
<item>橙色</item>
</string-array>
<string name="planet_prompt">please choose a item!</string>
</resources>
結束
感謝"思考的狼"為文章提供完善的翻譯及示例:)
轉載:http://www.cnblogs.com/over140/archive/2010/11/17/1879794.html