Android中,给Spinner组件装填数据比较常见的有以下两种方法:

一、编程载入列表数据

效果图:

 

首先,在布局文件main.xml中添加spinner组件,代码如下: 


  
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     android:orientation="vertical" 
  4.     android:layout_width="fill_parent" 
  5.     android:layout_height="fill_parent" 
  6.     > 
  7. <TextView    
  8.     android:layout_width="fill_parent"   
  9.     android:layout_height="wrap_content"   
  10.     android:text="Spinner_1" 
  11.     /> 
  12. <Spinner 
  13.     android:id="@+id/spinner_1" 
  14.     android:layout_width="fill_parent" 
  15.     android:layout_height="wrap_content" 
  16.     /> 
  17. </LinearLayout> 

然后,在MainActivity.java中,自定义方法add_list()进行Spinner的数据装载,代码如下:


  
  1. public class MainActivity extends Activity {  
  2.     private static final String[] mCountries = { "中国""美国""日本",  
  3.             "俄罗斯""加拿大" };  
  4.     Spinner sp = null;  
  5.  
  6.     /** Called when the activity is first created. */ 
  7.     @Override 
  8.     public void onCreate(Bundle savedInstanceState) {  
  9.         super.onCreate(savedInstanceState);  
  10.         setContentView(R.layout.main);  
  11.         add_list();  
  12.     }  
  13.  
  14.     private void add_list() {  
  15.         sp = (Spinner) findViewById(R.id.spinner_1);  
  16.         ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,  
  17.                 android.R.layout.simple_spinner_item, mCountries);  
  18.         adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);  
  19.         sp.setAdapter(adapter);  
  20.     }  

二、在XML中预定义列表数据

 首先,在strings.xml中定义列表数据,代码如下:


  
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <resources> 
  3.     <string name="hello">Hello World, MainActivity!</string> 
  4.     <string name="app_name">SpinnerTest</string> 
  5.       
  6.     <string-array name="countries"> 
  7.         <item>中国</item> 
  8.         <item>美国</item> 
  9.         <item>日本</item> 
  10.         <item>俄罗斯</item> 
  11.         <item>加拿大</item> 
  12.     </string-array> 
  13. </resources> 

其次,在布局文件main.xml中添加spinner组件,代码如下:


  
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     android:orientation="vertical" 
  4.     android:layout_width="fill_parent" 
  5.     android:layout_height="fill_parent" 
  6.     > 
  7. <TextView    
  8.     android:layout_width="fill_parent"   
  9.     android:layout_height="wrap_content"   
  10.     android:text="Spinner_1" 
  11.     /> 
  12. <Spinner 
  13.     android:id="@+id/spinner_1" 
  14.     android:layout_width="fill_parent" 
  15.     android:layout_height="wrap_content" 
  16.     /> 
  17. </LinearLayout> 

最后,在MainActivity.java中,进行Spinner的数据装载,代码如下:


  
  1. public class MainActivity extends Activity {  
  2.     Spinner sp = null;  
  3.  
  4.     /** Called when the activity is first created. */ 
  5.     @Override 
  6.     public void onCreate(Bundle savedInstanceState) {  
  7.         super.onCreate(savedInstanceState);  
  8.         setContentView(R.layout.main);  
  9.         sp = (Spinner) findViewById(R.id.spinner_1);  
  10.         ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(  
  11.                 this, R.array.countries,  
  12.                 android.R.layout.simple_spinner_dropdown_item);  
  13.         sp.setAdapter(adapter);  
  14.     }