问题
What i need to do is if a certain item from spinner 1 is selected it needs to display a certain array in spinner 01 e.g if spinner one selected item is Red spinner 01 needs to display level_array as the drop down options for spinner 01 else display cparklevel. in essence i am trying to display how many levels each car park has. so spinner 1 containts car park names and spinner 01 contains levels
Spinner spinner = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.cparkColour_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
Spinner spinner2 = (Spinner) findViewById(R.id.Spinner01);
if(spinner.getSelectedItem().equals("Red")){
ArrayAdapter<CharSequence> adapter1 = ArrayAdapter.createFromResource(
this, R.array.level_array, android.R.layout.simple_spinner_item);
adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner2.setAdapter(adapter1);
}
else {
ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource(
this, R.array.cparkLevel_array, android.R.layout.simple_spinner_item);
adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner2.setAdapter(adapter2);
}
}
any help would be appreciated
回答1:
Do it as:
spinner_1.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int position, long arg3) {
if(spinner_1.getSelectedItem().equals("Red")){
{
// set adapter to spinner_2 here for "Red" selected
}
else
{
// set adapter to spinner_2 for "Red" not selected
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
来源:https://stackoverflow.com/questions/9465167/populating-a-spinner-from-another-spinner-depending-on-condition