2011-08-16 61 views
0

我有一个微调框对象,其中包含一个填充了美国50个州的字符串数组。从独立微调框填充从属微调框

我还有一些数组包含不同州的城市列表。我想要做的是用从另一个微调器选择的状态的城市数组填充依赖微调器。

对于exampe:选择

首先微调 - 阿拉斯加

二微调 - 安克雷奇,费尔班克斯,凯奇坎,科迪亚克。

又如:选择

首先微调 - 佛罗里达

二微调 - 塔拉哈西基韦斯特。

问题是我不确定如何根据所选的状态微调器填充从属微调器。

我正在使用的数组适配器接受一个整数值,该值引用用于填充微调器的数组。

回答

0

我不知道确切的API调用你使用,但这里的一般方法我会使用:

class CitySpinnerFactory { 

    Map<String,Spinner> stateToCitySpinner = new HashMap<String,Spinner>(); 

    public void map(String state, Spinner citiesForState) { 
     stateToCitySpinner.put(state,citiesForState); 
    } 

    public Spinner spinnerForState(String state) { 
     return stateToCitySpinner.get(state); 
    } 

} 

,以后你可以这样做来填充各市州

Spinner states = new Spinner(); 
Spinner cities = null; 
CitySpinnerFactory cityFactory = new CitySpinnerFactory(); 

states.add("Alabama"); 
cities = new Spinner(); 
cities.add("Birmingham"); // city in AL 
cities.add("Mobile"); // city in AL 
cityFactory.map("Alabama",cities); 

states.add("Alaska"); 
cities = new Spinner(); 
cities.add("Juneau"); // city in AK 
cities.add("Anchorage"); 
cityFactory.map("Alaska",cities); 
// ... add other states 

,以后你可以这样做,以获得城市开出

String state = states.spin(); // making up method to get a random state... 
Spinner cities = cityFactory.spinnerForState(state); 
String city = cities.spin();