OnItemSelectedListener事件與二級聯動

一、界面

   1、新建province.xml件。

  在“res/values”位置新建province.xml文件。

  (1)province.xml文件位置如下圖所示:

  

  (2)province.xml內容如下:  

  

  (3)代碼  

[html] view plaincopy
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3. <string-array name="provarray">
  4. <item>河南省</item>
  5. <item>河北省</item>
  6. <item>山東省</item>
  7. <item>山西省</item>
  8. </string-array>
  9. </resources>
[html] view plaincopy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <resources>     
  3.     <string-array name="provarray">  
  4.         <item>河南省</item>  
  5.         <item>河北省</item>  
  6.         <item>山東省</item>  
  7.         <item>山西省</item>  
  8.     </string-array>      
  9. </resources>  

  2、打開“res/layout/activity_main.xml”文件。

   (1)分別從工具欄向activity拖出2個下拉列表框Spinner。控件來自Form Widgets。

  

  (2)打開activity_main.xml文件。   

[html] view plaincopy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout   
  3.     xmlns:android="http://schemas.android.com/apk/res/android"  
  4.     android:layout_width="match_parent"  
  5.     android:layout_height="match_parent" >  
  6.   
  7.     <Spinner  
  8.         android:id="@+id/province"  
  9.         android:layout_width="wrap_content"  
  10.         android:layout_height="wrap_content"  
  11.         android:entries="@array/provarray" />  
  12.   
  13.     <Spinner  
  14.         android:id="@+id/city"  
  15.         android:layout_width="wrap_content"  
  16.         android:layout_height="wrap_content" />  
  17.   
  18. </LinearLayout>  

 

  3、界面如下

  

二、OnItemSelectedListener事件 

  1、打開“src/com.genwoxue.twolevelmenu/MainActivity.java”文件。

  然後輸入以下代碼:

[java] view plaincopy
  1. package com.genwoxue.twolevelmenu;  
  2.   
  3. import android.os.Bundle;  
  4. import android.app.Activity;  
  5. import android.view.View;  
  6. import android.widget.Spinner;  
  7. import android.widget.Toast;  
  8. import android.widget.ArrayAdapter;  
  9. import android.widget.AdapterView;  
  10. import android.widget.AdapterView.OnItemSelectedListener;  
  11.   
  12.   
  13. public class MainActivity extends Activity {  
  14.   
  15.     //聲明Spinner對像  
  16.     private Spinner spinProvince=null;  
  17.     private Spinner spinCity=null;  
  18.     //定義城市數據,用於二級菜單  
  19.     private String[][] arrCity=new String[][]{  
  20.         {"鄭州","開封","洛陽","安陽"},  
  21.         {"石家莊","保定","邯鄲","張家口"},  
  22.         {"濟南","青島","煙臺","日照"},  
  23.         {"太原","晉中","呂梁","臨汾"}};  
  24.     //聲明數組適配器,用來填充城市列表  
  25.     private ArrayAdapter<CharSequence> adapterCity=null;  
  26.       
  27.     @Override  
  28.     protected void onCreate(Bundle savedInstanceState) {  
  29.         super.onCreate(savedInstanceState);  
  30.         setContentView(R.layout.activity_main);  
  31.         //獲取Spinner對象  
  32.         spinProvince=(Spinner)super.findViewById(R.id.province);  
  33.         spinCity=(Spinner)super.findViewById(R.id.city);  
  34.         //爲spinProvince控件註冊OnItemSelected監聽器  
  35.         spinProvince.setOnItemSelectedListener(new ProvOnItemSelectedListener());  
  36.         //爲spinCity控件註冊OnItemSelected監聽器  
  37.         spinCity.setOnItemSelectedListener(new CityOnItemSelectedListener());  
  38.         }  
  39.   
  40.     //OnItemSelected監聽器  
  41.     private class  ProvOnItemSelectedListener implements OnItemSelectedListener{      
  42.         //選擇省份,觸發城市下拉列表框  
  43.         @Override  
  44.         public void onItemSelected(AdapterView<?> adapter,View view,int position,long id) {  
  45.             //使用ArrayAdapter轉換數據  
  46.             MainActivity.this.adapterCity=new ArrayAdapter<CharSequence>(  
  47.                     MainActivity.this,  
  48.                     android.R.layout.simple_spinner_item,  
  49.                     MainActivity.this.arrCity[position]);  
  50.             //使用adapterCity數據適配器填充spinCity  
  51.             MainActivity.this.spinCity.setAdapter(MainActivity.this.adapterCity);  
  52.           
  53.         }  
  54.   
  55.         @Override  
  56.         public void onNothingSelected(AdapterView<?> arg0) {  
  57.             //沒有選擇時執行  
  58.         }  
  59.     }  
  60.     //OnItemSelected監聽器  
  61.     private class CityOnItemSelectedListener implements OnItemSelectedListener{      
  62.         //選擇城市,觸發顯示選擇的城市  
  63.         @Override    
  64.         public void onItemSelected(AdapterView<?> adapter,View view,int position,long id) {    
  65.             //獲取選擇的項的值     
  66.             String sInfo=adapter.getItemAtPosition(position).toString();    
  67.             Toast.makeText(getApplicationContext(), sInfo, Toast.LENGTH_LONG).show();               
  68.         }      
  69.         @Override    
  70.         public void onNothingSelected(AdapterView<?> arg0) {    
  71.             //沒有選擇時執行                
  72.         }    
  73.     }    
  74. }  

 

  2、最終效果如下:

    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章