android:Spinner(下拉框)控制項的使用,androidspinner
1.
2.建立分頁檔(main.xml)
1 <Spinner 2 android:id="@+id/spinner1" 3 android:layout_width="match_parent" 4 android:layout_height="wrap_content" /> 5 6 <TextView 7 android:id="@+id/tvResult" 8 android:layout_width="match_parent" 9 android:layout_height="wrap_content"10 android:text="選擇的水果" />
3.建立下拉框的資料來源
1 List<String> list = new ArrayList<String>();2 list.add("蘋果"); 5 list.add("香蕉"); 7 list.add("橘子"); 9 list.add("香蕉");
4.建立適配器(下拉框的資料來源是來自適配器)
ArrayAdapter<String> adapter=new ArrayAdapter<String>(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添加適配器
1 Spinner sp=(Spinner) findViewById(R.id.spinner1);2 sp.setAdapter(adapter);
釋義
1. setAdapter(SpinnerAdapter adapter) ,從類的繼承關係上看,ArrayAdapter是SpinnerAdapter介面的間接實作類別
7.實現選擇項事件(使用匿名類實現介面)
1 sp.setOnItemSelectedListener(new OnItemSelectedListener() { 2 // parent: 為控制項Spinner view:顯示文字的TextView position:下拉選項的位置從0開始 3 public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 4 TextView tvResult = (TextView) findViewById(R.id.tvResult); 5 //擷取Spinner控制項的適配器 6 ArrayAdapter<String> adapter = (ArrayAdapter<String>) parent.getAdapter(); 7 tvResult.setText(adapter.getItem(position)); 8 } 9 //沒有選中時的處理10 public void onNothingSelected(AdapterView<?> parent) {11 }12 });
8.後台整體代碼如下
1 public void onCreate(Bundle savedInstanceState) { 2 super.onCreate(savedInstanceState); 3 setContentView(R.layout.main); 4 List<String> list = new ArrayList<String>(); 5 list.add("蘋果"); 6 list.add("香蕉"); 7 list.add("橘子"); 8 list.add("香蕉"); 9 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list);10 adapter.setDropDownViewResource(android.R.layout.simple_list_item_single_choice);11 Spinner sp = (Spinner) findViewById(R.id.spinner1);12 sp.setAdapter(adapter);13 sp.setOnItemSelectedListener(new OnItemSelectedListener() {14 // parent: 為控制項Spinner view:顯示文字的TextView position:下拉選項的位置從0開始 15 public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {16 TextView tvResult = (TextView) findViewById(R.id.tvResult);17 //擷取Spinner控制項的適配器18 ArrayAdapter<String> adapter = (ArrayAdapter<String>) parent.getAdapter();19 tvResult.setText(adapter.getItem(position));20 }21 //沒有選中時的處理22 public void onNothingSelected(AdapterView<?> parent) {23 }24 });25 }