제가 첫번째 스피너에서 '시/도'(예:서울시, 경상북도)를 선택하면 그 선택한 곳의 '시/군/구'를 2번째 스피너에서 선택할수있도록 할것인데요.
1 스피너:서울시 , 2 스피너:강북구
위처럼 선택을 한 상태에서 1스피너를 바꾸면
1 스피너:인천시 , 2 스피너:강북구
이렇게 2스피너가 고정되어있습니다.
저는
1 스피너:인천시 , 2 스피너:시/군/구 를 선택해 주세요.
이렇게 만들고 싶습니다.
어떻게 하면 될까요?
아 데이터는 공공데이터 포털에서 주소 api로 끌어옵니다.
소스는
ArrayAdapter<String> adapter;
ArrayAdapter<String> adapter2;
Spinner SPN_sido;
Spinner SPN_sigungu;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search);
//어레이 리스트 처음 기본 내용 추가
ADDR1_ArrayList.add("시/도 선택");
ADDR2_ArrayList.add("시/군/구 선택");
SPN_sido = (Spinner) findViewById(R.id.SPN_sido);
SPN_sigungu = (Spinner) findViewById(R.id.SPN_sigungu);
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, ADDR1_ArrayList);
SPN_sido.setAdapter(adapter);
adapter2 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, ADDR2_ArrayList);
SPN_sigungu.setAdapter(adapter2);
SPN_sido.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
sido = adapter.getItem(position);
Log.d("TEST", "sido = " + adapter.getItem(position));
ADDR2_ArrayList.clear();
ADDR2_ArrayList.add("시/군/구 선택");
if (position != 0) {
String tmp = adapter.getItem(position);
try {
tmp = URLEncoder.encode(tmp, "utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
network2 = new Network(mHandler2, "/api008/" + tmp);
Thread thread = new Thread(network2);
thread.start();
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
SPN_sigungu.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
sigungu = adapter2.getItem(position);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}