前言
本章內容是 android.widget.AbsSpinner,版本為Android 2.2 r1,翻譯來自"思考的狼",歡迎大家訪問他的部落格:http://blog.163.com/sikaodelang@126/ ,再次感謝"思考的狼" !期待你一起參與Android API 的中文翻譯,聯絡我over140@gmail.com。
聲明
歡迎轉載,但請保留文章原始出處:)
部落格園:http://www.cnblogs.com/
Android中文翻譯組:http://www.cnblogs.com/over140/
本文
一、結構
public abstract class AbsSpinner extends AdapterView<T extends Adapter>
java.lang.Object
android.view.View
android.view.ViewGroup
android.widget.AdapterView<T extends android.widget.Adapter>
android.widget.AbsSpinner
二、概述
下拉式清單的基類。 Sdk可能不再使用到該類(譯者註:我認為是過時了)
三、XML屬性
屬性名稱 |
描述 |
android:entries |
引用一個資料來源填充Spinner。對於靜態內容,這是一種比編程填充Spinner更簡單的方式 。 |
四、公用方法
public SpinnerAdapter getAdapter ()
返回與當前組件相關聯的適配器
傳回值
該適配器用於提供視圖內容
public int getCount ()
傳回值
與此相關的適配器AdapterView所擁有的項目數量。(這個資料項目,可能比顯示的視圖資料量還大。)
public View getSelectedView ()
傳回值
這個視圖對應當前選擇的項,或者如果不選擇視圖則為null
public void onRestoreInstanceState (Parcelable state)
允許視圖重新應用以前通過onSaveInstanceState()產生代表內部的狀態。這個函數決不能以一個空值狀態被調用。
參數
state 返回以前調用onSaveInstanceState()儲存下來的狀態。
public Parcelable onSaveInstanceState ()
允許檢視窗產生一個代表內部的狀態,以後可用於建立一個與之相同的新的執行個體。這個狀態只可包含那些暫時的或不能被重建的資訊。例如,你無法將你目前的位置儲存在螢幕上,因為當有一個新的對象出現在這個視圖層次上就會自動重新計算。
以下有些執行個體:當游標停留在一個文本視區上(但是通常來說不能是實文檔,因為那個是己儲存在內容提供者或者其它長久儲存器中),當前所選的項位於一個列表視圖中
傳回值
返回一個Parcelable對象包含了當前視圖動態狀態,或者返回null如果沒有儲存,預設傳回值為null。
public int pointToPosition (int x, int y)
映射到列表中的一個座標(譯者註:根據這個座標可以確定點擊的是哪一個item,看這裡)
參數
x 局部座標X(譯者註:列表範圍內的座標X)
y 局部座標Y(譯者註:列表範圍內的座標Y)
傳回值
返回這個位置包含的指定點(譯者註:返回座標(item)在列表中的順序),如果這2個點不相交返回INVALID_POSITION
public void requestLayout ()
重寫以防止布局視圖時出現大量布局要求。(譯者註:這個方法通常在視圖認為它自己不再合適它當前的邊界的情況下被調用)
public void setAdapter (SpinnerAdapter adapter)
該適配器用於提供資料支援這個Spinner。他還提供了改變基於他們選擇的相對位置 的選定項
參數
adapter 該SpinnerAdapter用於下拉式清單
public void setSelection (int position, boolean animate)
直接跳到資料配接器中指定項
public void setSelection (int position)
設定當前選中項,為了支援可訪問的子類重寫此方法,必須首先調用父類的方法。
參數
position 索引,被選中的資料項目(從0開始)
五、受保護方法
protected ViewGroup.LayoutParams generateDefaultLayoutParams ()
返回預設設定的布局參數。這些參數是在請求傳遞給addView(View)還沒有布局的時候已經設定好了的。如果是返回null,則從addView拋出一個異常
傳回值
參數的預設布局或null