android開發中spinner控件的使用


這文章是看完Mars 老師的教學視頻後根據自己理解寫的,所以部分內容引用到Mars 老師視頻。

       ps :極力推薦初學android的朋友看Mars老師的視頻。

 

正文:

        spinner控件就好比如我們電腦的下拉選擇菜單,但由於手機屏幕的顯示範圍有限,所以就會彈出一個類似於對話框的選擇菜單。如下圖:

-------------------------------->

 

 

 

 

第二就是構造spinner控件的步奏:

          1.在佈局文件中聲明信息(如ID,寬高背景等)

<spinner
   android:"@+id/spinner"
   android:layout_wight="fill_parent"
   android:layout_height="wrap_content"
/>   
  

         2.在string.xml中聲明一個數組,這個數組是彈出選擇菜單的選項文字

 <string-array name="planets_array">
        <item>Mercury</item>
        <item>Venus</item>
        <item>Earth</item>
        <item>Mars</item>
        <item>Jupiter</item>
        <item>Saturn</item>
        <item>Uranus</item>
        <item>Neptune</item>
    </string-array>

      3.創建一個Arryadapter對象。並調用兩個方法

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
        R.array.planets_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);


其中createFromResource方法中有三個參數,分別表示:

      this:上下文對象,

      R.array.planets_array:引用在string.xml中聲明的數組;

      android.R.layout.simple_spinner_item:設置主題;

其中setDropDownViewResource 方法是用來設置spinner中每一個選項的主題;

      4.得到一個spinner 對象然後設置對象的數據:

spinner.setaAdapter(adapter);//把上面設置好的adapter傳進spinner中(相當於彈出菜單的內容);
spinner.setPrompt("測試");//彈出菜單的描述


第三是設置監聽器來監聽spinner的動作:

class spinnerListener implements OnItemSelectedListener {
    ...
    
    public void onItemSelected(AdapterView<?> parent, View view, 
            int pos, long id) {
        // An item was selected. You can retrieve the selected item using
        // parent.getItemAtPosition(pos)
    }

    public void onNothingSelected(AdapterView<?> parent) {
        // Another interface callback
    }
}

OnItemSelectedListener 類中可以複寫兩個函數:

        1.void onItemSelected :用戶選中了菜單中的某一項後程序要執行的動作(其中傳入參數int pos就是被選中選項在菜單中的位置)

        2.void onNothingSelected :當用戶什麼都沒有選中的情況下要執行的動作;

 

 

 

附加:上面說的是靜態設置選擇菜單中的內容,也就是說菜單中的選中是固定不可變的,但實際應用上很多時候選項是需要隨着用戶的操作而改變的,所以android就有一個動態設置ArrayAdapter的方法:

            過程是先設置一個List<T>的對象,再創建一個ArrayAdapter對象的構造函數:

public ArrayAdapter (Context context, int resource, int textViewResourceId, T[] objects)


傳入四個參數:

       1.context:上下文對象;

       2.resource:設置菜單的樣式(就是主題一般爲R.layout.item的ID);

       3.textViewResourceId:指定textView空間的ID;

       4.T[] objects:就是上面設置的List對象;

 


                   

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