Android 省市区三级联动
1 package com.example.homeworkday04_2; 2 3 import java.util.ArrayList; 4 import java.util.HashMap; 5 import java.util.LinkedHashMap; 6 import java.util.List; 7 import java.util.Map; 8 9 import android.os.Bundle; 10 import android.R.string; 11 import android.app.Activity; 12 import android.util.Log; 13 import android.view.View; 14 import android.widget.AdapterView; 15 import android.widget.AdapterView.OnItemSelectedListener; 16 import android.widget.ArrayAdapter; 17 import android.widget.Spinner; 18 19 public class MainActivity extends Activity { 20 private Spinner provinceSpinner = null; // 省级(省、直辖市) 21 private Spinner citySpinner = null; // 地级市 22 private Spinner countySpinner = null; // 县级(区、县、县级市) 23 ArrayAdapter<String> provinceAdapter = null; // 省级适配器 24 ArrayAdapter<String> cityAdapter = null; // 地级适配器 25 ArrayAdapter<String> countyAdapter = null; // 县级适配器 26 private Map<String, Map<String, ArrayList<String>>> map = new HashMap<String, Map<String, ArrayList<String>>>(); 27 Map<String, ArrayList<String>> map2 = new HashMap<String, ArrayList<String>>(); 28 Map<String, ArrayList<String>> map3 = new HashMap<String, ArrayList<String>>(); 29 30 protected void onCreate(Bundle savedInstanceState) { 31 super.onCreate(savedInstanceState); 32 setContentView(R.layout.activity_main); 33 ArrayList<String> counties = new ArrayList<String>(); 34 counties.add("郑州a区"); 35 counties.add("郑州b区"); 36 counties.add("郑州c区"); 37 map2.put("郑州", counties); 38 ArrayList<String> counties1 = new ArrayList<String>(); 39 counties1.add("洛阳a区"); 40 counties1.add("洛阳b区"); 41 counties1.add("洛阳c区"); 42 map2.put("洛阳", counties1); 43 map.put("河南", map2); 44 ArrayList<String> counties2 = new ArrayList<String>(); 45 counties2.add("保定a区"); 46 counties2.add("保定b区"); 47 counties2.add("保定c区"); 48 map3.put("保定", counties2); 49 ArrayList<String> counties3 = new ArrayList<String>(); 50 counties3.add("石家庄a区"); 51 counties3.add("石家庄b区"); 52 counties3.add("石家庄区c"); 53 map3.put("石家庄", counties3); 54 map.put("河北", map3); 55 provinceSpinner = (Spinner) findViewById(R.id.spinner1); 56 citySpinner = (Spinner) findViewById(R.id.spinner2); 57 countySpinner = (Spinner) findViewById(R.id.spinner3); 58 // 省市联动 59 List<String> provicesList = new ArrayList<String>(map.keySet()); 60 provinceAdapter = new ArrayAdapter<String>(this, 61 android.R.layout.simple_spinner_item, provicesList); 62 provinceSpinner.setAdapter(provinceAdapter); 63 provinceSpinner.setOnItemSelectedListener(new OnItemSelectedListener() { 64 65 @Override 66 public void onItemSelected(AdapterView<?> parent, View view, 67 int position, long id) { 68 // TODO Auto-generated method stub 69 String string = (String) parent.getItemAtPosition(position); 70 map2 = map.get(string);// 获得市县级联动map 这里可以重写一个map 因为省市的原因就拿来用了 71 // 他把原来的 覆盖了 72 List<String> cityList = new ArrayList<String>(map2.keySet());// 或得市列表 73 cityAdapter = new ArrayAdapter<String>(MainActivity.this, 74 android.R.layout.simple_spinner_item, cityList); 75 citySpinner.setAdapter(cityAdapter); 76 77 } 78 79 @Override 80 public void onNothingSelected(AdapterView<?> parent) { 81 // TODO Auto-generated method stub 82 83 } 84 }); 85 // 市县级联动监听 86 citySpinner.setOnItemSelectedListener(new OnItemSelectedListener() { 87 88 @Override 89 public void onItemSelected(AdapterView<?> parent, View view, 90 int position, long id) { 91 // TODO Auto-generated method stub 92 String string = (String) parent.getItemAtPosition(position); 93 System.out.println(string); 94 List<String> countylList = map2.get(string); 95 System.out.println(countylList.toString()); 96 97 countyAdapter = new ArrayAdapter<String>(MainActivity.this, 98 android.R.layout.simple_spinner_item, countylList); 99 countySpinner.setAdapter(countyAdapter); 100 101 } 102 103 @Override 104 public void onNothingSelected(AdapterView<?> parent) { 105 // TODO Auto-generated method stub 106 107 } 108 }); 109 110 } 111 112 }
在有限的人生中,你总是在追寻更大的世界,
在忙碌中,赢得更多人生财富,
也在前进中,扩展生命的宽度,
活在当下,去收获更多激情,也活出自我,懂得放弃更多,每一次的自由,让心更辽阔,
你走得越远,就越知道,
世界再大,总有牵挂,
因为,爱,一直都在!