android:Spinner(下拉框)控制項的使用
1.
2.建立分頁檔(main.xml)
3.建立下拉框的資料來源
List list = new ArrayList(); list.add("蘋果"); list.add("香蕉"); list.add("橘子"); list.add("香蕉");
4.建立適配器(下拉框的資料來源是來自適配器)
ArrayAdapter adapter=new ArrayAdapter(this, android.R.layout.simple_spinner_item,list);
5.為適配器添加樣式
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
系統提供的樣式如下
l simple_spinner_dropdown_item(列表-間距較高比較好看)
l simple_spinner_item(列表-間距緊湊不好看)
l simple_list_item_checked(複選框-選中的有綠溝)
l simple_list_item_single_choice (選項按鈕)
6.向控制項Spinner添加適配器
Spinner sp=(Spinner) findViewById(R.id.spinner1);
sp.setAdapter(adapter);
釋義
1. setAdapter(SpinnerAdapteradapter) ,從類的繼承關係上看,ArrayAdapter是SpinnerAdapter介面的間接實作類別
7.實現選擇項事件(使用匿名類實現介面)
sp.setOnItemSelectedListener(new OnItemSelectedListener() {// parent: 為控制項Spinner view:顯示文字的TextView position:下拉選項的位置從0開始 public void onItemSelected(AdapterView parent, View view, int position, long id) {TextView tvResult = (TextView) findViewById(R.id.tvResult);//擷取Spinner控制項的適配器ArrayAdapter adapter = (ArrayAdapter) parent.getAdapter();tvResult.setText(adapter.getItem(position));} //沒有選中時的處理public void onNothingSelected(AdapterView parent) {}});
8.後台整體代碼如下
public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);List list = new ArrayList();list.add("蘋果");list.add("香蕉");list.add("橘子");list.add("香蕉");ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, list);adapter.setDropDownViewResource(android.R.layout.simple_list_item_single_choice);Spinner sp = (Spinner) findViewById(R.id.spinner1);sp.setAdapter(adapter);sp.setOnItemSelectedListener(new OnItemSelectedListener() {// parent: 為控制項Spinner view:顯示文字的TextView position:下拉選項的位置從0開始 public void onItemSelected(AdapterView parent, View view, int position, long id) {TextView tvResult = (TextView) findViewById(R.id.tvResult);//擷取Spinner控制項的適配器ArrayAdapter adapter = (ArrayAdapter) parent.getAdapter();tvResult.setText(adapter.getItem(position));} //沒有選中時的處理public void onNothingSelected(AdapterView parent) {}});}