要实现根据第一个 Spinner 的选择值来动态填充第二个和第三个 Spinner,可以按照以下步骤进行:
Spinner spinner1 = findViewById(R.id.spinner1);
Spinner spinner2 = findViewById(R.id.spinner2);
Spinner spinner3 = findViewById(R.id.spinner3);
// 设置第一个 Spinner 的适配器和监听器
ArrayAdapter adapter1 = ArrayAdapter.createFromResource(this,
R.array.spinner1_values, android.R.layout.simple_spinner_item);
adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(adapter1);
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView> parent, View view, int position, long id) {
// 根据第一个 Spinner 的选择值,动态填充第二个和第三个 Spinner
String selectedValue = parent.getItemAtPosition(position).toString();
fillSpinner2(selectedValue);
fillSpinner3(selectedValue);
}
@Override
public void onNothingSelected(AdapterView> parent) {
// 当第一个 Spinner 没有选择项时的处理逻辑
}
});
private void fillSpinner2(String selectedValue) {
// 根据 selectedValue 填充第二个 Spinner
ArrayAdapter adapter2 = null;
if (selectedValue.equals("Value1")) {
adapter2 = ArrayAdapter.createFromResource(this,
R.array.spinner2_values1, android.R.layout.simple_spinner_item);
} else if (selectedValue.equals("Value2")) {
adapter2 = ArrayAdapter.createFromResource(this,
R.array.spinner2_values2, android.R.layout.simple_spinner_item);
}
if (adapter2 != null) {
adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner2.setAdapter(adapter2);
}
}
private void fillSpinner3(String selectedValue) {
// 根据 selectedValue 填充第三个 Spinner
ArrayAdapter adapter3 = null;
if (selectedValue.equals("Value1")) {
adapter3 = ArrayAdapter.createFromResource(this,
R.array.spinner3_values1, android.R.layout.simple_spinner_item);
} else if (selectedValue.equals("Value2")) {
adapter3 = ArrayAdapter.createFromResource(this,
R.array.spinner3_values2, android.R.layout.simple_spinner_item);
}
if (adapter3 != null) {
adapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner3.setAdapter(adapter3);
}
}
- Value1
- Value2
- Option1
- Option2
- Option3
- Option4
- Choice1
- Choice2
- Choice3
- Choice4
以上代码示例实现了根据第一个 Spinner 的选择值来动态填充第二个和第三个 Spinner 的功能。根据第一个 Spinner 的选择值不同,第二个和第三个 Spinner 的选项值也会相应变化。