public
class
SpinnerActivity
extends
Activity
implements
OnItemSelectedListener {
private
Spinner siSpinner, guSpinner, dongSpinner;
private
ArrayAdapter siAdapter, guAdapter, dongAdapter;
public
void
onCreate(Bundle savedInstance) {
super
.onCreate(savedInstance);
dongAdapter =
new
ArrayAdapter(...)
dongAdapter.setNotifyOnChange(
true
);
dongSpinner = findViewById(R.id.dongSpinner);
donSpinner.setAdapter(guAdapter);
donSpinner.setOnItemSelectedListener(
this
);
guApapter =
new
ArrayAdapter(...)
guApapter.setNotifyOnChange(
true
);
guSpinner = findViewById(R.id.guSpinner);
guSpinner.setAdapter(guAdapter);
guSipnner.setOnItemSelectedListener(
this
);
privat
final
siList = getSiList();
siAdapter =
new
ArrayAdapter(getContext, R.layout.item_layout_id, siList)
siSpinner = findViewById(R.id.siSpinner);
siSpinner.setAdapter(siAdapter);
siSpinner.setOnItemSelectedListener(
this
);
}
private
String selectedSi, selectedGu;
public
void
onItemSelected(AdapterView<?> parent, View view,
int
pos,
long
id) {
String selectedItem = (String) parent.getSelectedItem();
switch
(prent.getId()) {
case
R.id.siSpinner ->
selectedSi = selectedItem;
siSelected();
break
;
case
R.id.guSpinner ->
selectedGu = selectedItem;
guSelected();
break
;
case
R.id.dongSpinner ->
dongSelected(selectedItem);
break
;
default
:
throw
new
RuntimeException(
"Unknown spinner selected"
);
}
}
public
void
onNothingSelected(AdapterView<?> parent) {
}
private
void
siSelected() {
List<String> guList = getGuList(selectedSi);
guAdapter.clear();
guAdaper.addAll(guList);
}
private
void
guSelected() {
List<String> dongList = getDongList(selectedSi, selectedGu);
dongAdapter.clear();
dongAdapter.addAll(dongList);
}
private
void
dongSelected(String dong) {
}
private
List<String> getSiList() {
}
private
List<String> getGuList(si: String) {
}
private
List<String> getDongList(si: String, gu: String) {
}
}