2011-08-16 7 views
0

미국의 50 개 주에서 채워지는 문자열 배열을 포함하는 Spinner 개체가 있습니다.독립적 인 회 전자에서 종속 회 전자 채우기

다른 주에 대한 도시 목록이 포함 된 배열도 있습니다. 내가 원하는 것은 다른 스피너가 선택한 주에서 도시의 배열로 종속 된 스피너를 채우는 것입니다. 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();