一、界面
1、新建province.xml件。
在“res/values”位置新建province.xml文件。
(1)province.xml文件位置如下圖所示:
(2)province.xml內容如下:
(3)代碼
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <string-array name="provarray">
- <item>河南省</item>
- <item>河北省</item>
- <item>山東省</item>
- <item>山西省</item>
- </string-array>
- </resources>
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <string-array name="provarray">
- <item>河南省</item>
- <item>河北省</item>
- <item>山東省</item>
- <item>山西省</item>
- </string-array>
- </resources>
2、打開“res/layout/activity_main.xml”文件。
(1)分別從工具欄向activity拖出2個下拉列表框Spinner。控件來自Form Widgets。
(2)打開activity_main.xml文件。
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent" >
- <Spinner
- android:id="@+id/province"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:entries="@array/provarray" />
- <Spinner
- android:id="@+id/city"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
- </LinearLayout>
二、OnItemSelectedListener事件
1、打開“src/com.genwoxue.twolevelmenu/MainActivity.java”文件。
然後輸入以下代碼:
- package com.genwoxue.twolevelmenu;
- import android.os.Bundle;
- import android.app.Activity;
- import android.view.View;
- import android.widget.Spinner;
- import android.widget.Toast;
- import android.widget.ArrayAdapter;
- import android.widget.AdapterView;
- import android.widget.AdapterView.OnItemSelectedListener;
- public class MainActivity extends Activity {
- //聲明Spinner對像
- private Spinner spinProvince=null;
- private Spinner spinCity=null;
- //定義城市數據,用於二級菜單
- private String[][] arrCity=new String[][]{
- {"鄭州","開封","洛陽","安陽"},
- {"石家莊","保定","邯鄲","張家口"},
- {"濟南","青島","煙臺","日照"},
- {"太原","晉中","呂梁","臨汾"}};
- //聲明數組適配器,用來填充城市列表
- private ArrayAdapter<CharSequence> adapterCity=null;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- //獲取Spinner對象
- spinProvince=(Spinner)super.findViewById(R.id.province);
- spinCity=(Spinner)super.findViewById(R.id.city);
- //爲spinProvince控件註冊OnItemSelected監聽器
- spinProvince.setOnItemSelectedListener(new ProvOnItemSelectedListener());
- //爲spinCity控件註冊OnItemSelected監聽器
- spinCity.setOnItemSelectedListener(new CityOnItemSelectedListener());
- }
- //OnItemSelected監聽器
- private class ProvOnItemSelectedListener implements OnItemSelectedListener{
- //選擇省份,觸發城市下拉列表框
- @Override
- public void onItemSelected(AdapterView<?> adapter,View view,int position,long id) {
- //使用ArrayAdapter轉換數據
- MainActivity.this.adapterCity=new ArrayAdapter<CharSequence>(
- MainActivity.this,
- android.R.layout.simple_spinner_item,
- MainActivity.this.arrCity[position]);
- //使用adapterCity數據適配器填充spinCity
- MainActivity.this.spinCity.setAdapter(MainActivity.this.adapterCity);
- }
- @Override
- public void onNothingSelected(AdapterView<?> arg0) {
- //沒有選擇時執行
- }
- }
- //OnItemSelected監聽器
- private class CityOnItemSelectedListener implements OnItemSelectedListener{
- //選擇城市,觸發顯示選擇的城市
- @Override
- public void onItemSelected(AdapterView<?> adapter,View view,int position,long id) {
- //獲取選擇的項的值
- String sInfo=adapter.getItemAtPosition(position).toString();
- Toast.makeText(getApplicationContext(), sInfo, Toast.LENGTH_LONG).show();
- }
- @Override
- public void onNothingSelected(AdapterView<?> arg0) {
- //沒有選擇時執行
- }
- }
- }
2、最終效果如下: