从独立微调器填充依赖微调器

时间:2011-08-16 18:07:25

标签: java arrays spinner

我有一个Spinner对象,其中包含一个填充了美国50个州的字符串数组。

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

例如:

选择了第一个旋转器 - 阿拉斯加

第二个旋转器 - 安克雷奇,费尔班克斯,凯奇坎,科迪亚克。

另一个例子:

选择第一个旋转器 - 佛罗里达

第二个旋转器 - 基韦斯特,塔拉哈西。

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

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

1 个答案:

答案 0 :(得分: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();