Android開發教學
Android 開發環境配置
Android 架構
Android 應用組件
Android Hello World示例
Android 資源組織和訪問
Android Activity
Android Service
Android廣播接收器
Android內容提供者
Android碎片/片段
Android Intent過濾器
Android UI佈局
Android LinearLayout
Android RelativeLayout
Android TableLayout
Android AbsoluteLayout
Android FrameLayout
Android ListView
Android GridView
Android UI控件
Android TextView
Android EditText
Android AutoCompleteTextView
Android Button
Android ImageButton
Android CheckBox
Android ToggleButton
Android RadioButton
Android RadioGroup
Android事件處理
Android樣式和主題
Android樣式示例
Android主題示例
Android自定義組件
Android拖放
Android通知
Android基於位置服務
Android發送電子郵件
Android發送短信/SMS
Android撥打電話
發佈Android應用
ArrayAdapter
SimpleCursorAdapter
Android ProgressDialog
Android Spinner
使用活動代碼自定義Android組件
使用佈局文件自定義Android組件
Android自定義組件及屬性
Android Alertdialog(警告對話框)
Android Animation(動畫)實例
Android音頻捕獲(錄音)
Android音頻管理器實例
Android AutoCompleteTextView(自動完成)實例
Android最佳實踐
Android Bluetooth(藍牙)實例
Android Camera(攝像頭)
Android Clipboard(複製/剪貼板)
Android自定義字體
Android數據備份
Android Gestures/手勢
Android圖片效果
Android圖片切換
Android內部存儲
Android JetPlayer實例
Android JSON解析器
Android加載Spinner
Android本地化
Android登錄實例
Android MediaPlayer(多媒體播放)

Android Spinner

在Android中,可以使用「android.widget.Spinner」類來呈現一個下拉框,選擇列表。

注:
類似於用於選擇項的下拉列表中選擇一個小部件(類似於HTML的Select)

在本教程中,我們將介紹如何執行以下任務:

  1. 渲染一個Spinner在XML,並通過加載XML文件以及選擇項。
  2. 呈現另一種Spinner的XML,並通過代碼動態加載的選擇項。
  3. 附上關於Spinner監聽器,監聽當用戶選擇Spinner的值。
  4. 渲染和附加一個監聽器在一個正常的按鈕,如果用戶點擊它觸發顯示微調的選定值。

1. Spinner的項列表

打開「res/values/strings.xml」 文件,定義將在Spinner(下拉列表)顯示的項目列表。

文件 : res/values/strings.xml

  選擇一個國家 Choose a country   China United States Indonesia France Italy Singapore New Zealand India  

2. Spinner (下拉列表)

打開 「res/layout/main.xml」 文件,添加兩個spinner 組件和一個按鈕。

  1. 在「spinner1″, 「android:entries」 代表 spinner 的選擇項目。
  2. 在「spinner2」,選擇項目將在後面的代碼中定義。

文件: res/layout/main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
 
<Spinner
android:id="@+id/spinner1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/country_arrays"
android:prompt="@string/country_prompt" />
 
<Spinner
android:id="@+id/spinner2"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
 
<Button
android:id="@+id/btnSubmit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Submit" />
 

3. 代碼

閱讀代碼以及代碼的註釋,應該是很容易理解的。

文件: MyAndroidAppActivity.java

package com.yiibai.spinnerdemo;
 
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.Toast;
 
public class MyAndroidAppActivity extends Activity {
 
private Spinner spinner1, spinner2;
private Button btnSubmit;
 
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
 
addItemsOnSpinner2();
addListenerOnButton();
addListenerOnSpinnerItemSelection();
}
 
// add items into spinner dynamically
public void addItemsOnSpinner2() {
 
spinner2 = (Spinner) findViewById(R.id.spinner2);
List<String> list = new ArrayList<String>();
list.add("list 1");
list.add("list 2");
list.add("list 3");
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, list);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner2.setAdapter(dataAdapter);
}
 
public void addListenerOnSpinnerItemSelection() {
spinner1 = (Spinner) findViewById(R.id.spinner1);
spinner1.setOnItemSelectedListener(new CustomOnItemSelectedListener());
}
 
// get the selected dropdown list value
public void addListenerOnButton() {
 
spinner1 = (Spinner) findViewById(R.id.spinner1);
spinner2 = (Spinner) findViewById(R.id.spinner2);
btnSubmit = (Button) findViewById(R.id.btnSubmit);
 
btnSubmit.setOnClickListener(new OnClickListener() {
 
@Override
public void onClick(View v) {
 
Toast.makeText(MyAndroidAppActivity.this,
"OnClickListener : " +
" Spinner 1 : "+ String.valueOf(spinner1.getSelectedItem()) +
" Spinner 2 : "+ String.valueOf(spinner2.getSelectedItem()),
Toast.LENGTH_SHORT).show();
}
 
});
}
}

文件: CustomOnItemSelectedListener.java

package com.yiibai.spinnerdemo;
 
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Toast;
 
public class CustomOnItemSelectedListener implements OnItemSelectedListener {
 
public void onItemSelected(AdapterView parent, View view, int pos,long id) { Toast.makeText(parent.getContext(), "OnItemSelectedListener : " + parent.getItemAtPosition(pos).toString(), Toast.LENGTH\_SHORT).show(); }   @Override public void onNothingSelected(AdapterView arg0) {
// TODO Auto-generated method stub
}
 
}

4. 示例

運行該應用程序。

1. 結果,顯示兩個spinner:

Android

  1. 從spinner1選擇「France」,項目選擇監聽器被觸發:
    Android

  2. 從 spinner2 選擇 「list2」,並點擊提交按鈕: 

Android

代碼下載地址:http://pan.baidu.com/s/1dD3ZzvN