【Android組件學習】Spinner的基本用法和Adapter的作用

Android有很多組件,每種組件的用法又有很多不同之處,要全部記住真是困難,先記在這裏。

Spinner就是下拉菜單,它是介個樣子的(Android 4.0.3):


接下來講講它最基本的用法。

1、在佈局裏創建一個Spinner,代碼如下:

<Spinner android:id="@+id/spinner_1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:drawSelectorOnTop="false"/>

2、在Activity裏創建對象,並且綁定內容,有兩種方法,一種爲在程序運行時載入數據,一種爲在xml文件裏定義好數據並與組件關聯。

(1)程序運行時載入數據:

在activity中創建數組:

private static final String[] mCountries = {"China", "Russia", "Germany", "Ukraine", "Belarus", "USA"};

在onCreate函數中調用下面這個方法載入數據:

private void find_and_modify_view() {
	Spinner spin = (Spinner) findViewById(R.id.spinner_1);
	ArrayList<String> allcountries = new ArrayList<String>();
	for (int i=0; i<mCountries.length; i++) {
		allcountries.add(mCountries[i]);
	}
	ArrayAdapter<String> aspnCountries = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, allcountries);
	aspnCountries.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);// 設定下拉菜單的樣式
	spin.setAdapter(aspnCountries);
}

(2)從XML文件中載入:

在/res/value下創建一個array.xml文件如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="countries">
        <item>China2</item>
        <item>Russia2</item>
        <item>Germany2</item>
        <item>Ukraine2</item>
        <item>Belarus2</item>
        <item>USA2</item>
    </string-array>
</resources>

然後在onCreate函數中創建一個Spinner對象,完成綁定:

Spinner spin = (Spinner) findViewById(R.id.spinner_2);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.countries, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spin.setAdapter(adapter);

順便講講Adapter的作用。

Adapter這個東東主要作用就是聯繫View和數據,我們既可以用它來操作底層數據(通過View),也可以用它將數據顯示在View上。

在Spinner中我們使用到了ArrayAdapter,創建它的時候用到了下面一個構造函數:

ArrayAdapter(Context context, int textViewResourceId, List<T> objects)

在Spinner例子中,第一個參數是指上下文,傳入this即可,主要是爲了用來訪問某些resource,第二個參數傳入一個Spinner的樣式(如果是其他組件會有不同的樣式),第三個可以傳入一個ArrayList,就是需要顯示在Spinner上的數據。

此外還有CursorAdapter和SimpleCursorAdapter如果以後有機會用到再記下來。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章