Android 之 下拉框(Spinner)的简单使用



1. 工程的layout.xml文件如下:声明一个TextView控件和一个Spinner控件

[java] view plain copy print ?
  1. "1.0" encoding="utf-8"?>      
  2.   xmlns:android="http://schemas.android.com/apk/res/android"      
  3.   android:layout_width="fill_parent"      
  4.   android:layout_height="fill_parent"      
  5.   android:orientation="vertical"      
  6.   >      
  7.   "@+id/spinnerText"      
  8.             android:layout_width="fill_parent"        
  9.             android:layout_height="wrap_content">      
  10.   "@+id/Spinner01"        
  11.            android:layout_width="fill_parent"      
  12.            android:layout_height="wrap_content">      
  13.      
 

 

 

2. 下拉选择项。这边使用xml,当然也可以使用其他的方式,比如ArrayAdapter、自定义Adapter等。

 

[xhtml] view plain copy print ?
  1. xml version="1.0" encoding="utf-8"?>      
  2. <resources>      
  3.     <string-array name="plantes">      
  4.         <item>中国item>      
  5.         <item>美国item>      
  6.         <item>日本item>      
  7.         <item>英国item>      
  8.         <item>法国item>      
  9.     string-array>      
  10. resources>      
中国 美国 日本 英国 法国  

 

3. 主类

[java] view plain copy print ?
  1. import android.app.Activity;       
  2. import android.os.Bundle;       
  3. import android.view.View;       
  4. import android.widget.AdapterView;       
  5. import android.widget.AdapterView.OnItemSelectedListener;       
  6. import android.widget.ArrayAdapter;       
  7. import android.widget.Spinner;       
  8. import android.widget.TextView;       
  9.       
  10. public class SpinnerActivity extends Activity {       
  11.            
  12.     private TextView view2;       
  13.     private Spinner spinner2;       
  14.     private ArrayAdapter adapter2;       
  15.       
  16.     @Override      
  17.     protected void onCreate(Bundle savedInstanceState) {       
  18.         // TODO Auto-generated method stub       
  19.         super.onCreate(savedInstanceState);       
  20.         setContentView(R.layout.spinner);       
  21.       
  22.         spinner2 = (Spinner) findViewById(R.id.spinner02);       
  23.         view2 = (TextView) findViewById(R.id.spinnerText02);       
  24.       
  25.         //将可选内容与ArrayAdapter连接起来       
  26.         adapter2 = ArrayAdapter.createFromResource(this, R.array.plantes, android.R.layout.simple_spinner_item);       
  27.       
  28.         //设置下拉列表的风格        
  29.     adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);       
  30.       
  31.         //将adapter2 添加到spinner中       
  32.         spinner2.setAdapter(adapter2);       
  33.       
  34.         //添加事件Spinner事件监听         
  35.         spinner2.setOnItemSelectedListener(new SpinnerXMLSelectedListener());       
  36.       
  37.         //设置默认值       
  38.         spinner2.setVisibility(View.VISIBLE);       
  39.                
  40.     }       
  41.            
  42.     //使用XML形式操作       
  43.     class SpinnerXMLSelectedListener implements OnItemSelectedListener{       
  44.         public void onItemSelected(AdapterView arg0, View arg1, int arg2,       
  45.                 long arg3) {       
  46.             view2.setText("你来自:"+adapter2.getItem(arg2));       
  47.         }       
  48.       
  49.         public void onNothingSelected(AdapterView arg0) {       
  50.                    
  51.         }       
  52.                
  53.     }       
  54. }      
import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.TextView; public class SpinnerActivity extends Activity { private TextView view2; private Spinner spinner2; private ArrayAdapter adapter2; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.spinner); spinner2 = (Spinner) findViewById(R.id.spinner02); view2 = (TextView) findViewById(R.id.spinnerText02); //将可选内容与ArrayAdapter连接起来 adapter2 = ArrayAdapter.createFromResource(this, R.array.plantes, android.R.layout.simple_spinner_item); //设置下拉列表的风格 adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //将adapter2 添加到spinner中 spinner2.setAdapter(adapter2); //添加事件Spinner事件监听 spinner2.setOnItemSelectedListener(new SpinnerXMLSelectedListener()); //设置默认值 spinner2.setVisibility(View.VISIBLE); } //使用XML形式操作 class SpinnerXMLSelectedListener implements OnItemSelectedListener{ public void onItemSelected(AdapterView arg0, View arg1, int arg2, long arg3) { view2.setText("你来自:"+adapter2.getItem(arg2)); } public void onNothingSelected(AdapterView arg0) { } } }

 

setDropDownViewResource 主要是设置 User 点击 Spinner 后出现的下拉菜单样式, android 亦提供两种基本的样式:  
android.R.layout.simple_spinner_item : TextView 的下拉菜单。  
android.R.layout.simple_spinner_dropdown_item :除了有 TextView ,右边有 radio 的下拉菜单。  

你可能感兴趣的:(android)