spinner的二级联动
时间: 2024-01-21 19:18:32 浏览: 65
Spinner二级联动下拉菜单
5星 · 资源好评率100%
Spinner 的二级联动可以通过以下步骤实现:
1. 在 layout 文件中添加两个 Spinner 控件,一个用于选择一级选项,另一个用于选择二级选项。
2. 在 Java 代码中为第一个 Spinner 设置适配器,适配器中包含一级选项的数据源。
3. 在第一个 Spinner 的选择事件中获取当前选择的一级选项,并根据该选项获取对应的二级选项数据源。
4. 为第二个 Spinner 设置适配器,适配器中包含二级选项的数据源。
5. 在第二个 Spinner 的选择事件中获取当前选择的二级选项。
下面是一个简单的示例代码,演示如何实现 Spinner 的二级联动:
```java
// 获取 layout 文件中的 Spinner 控件
Spinner spinner1 = findViewById(R.id.spinner1);
Spinner spinner2 = findViewById(R.id.spinner2);
// 定义一级选项和二级选项的数据源
String[] items1 = {"选项1", "选项2", "选项3"};
String[][] items2 = {
{"选项1-1", "选项1-2", "选项1-3"},
{"选项2-1", "选项2-2", "选项2-3"},
{"选项3-1", "选项3-2", "选项3-3"}
};
// 为第一个 Spinner 设置适配器
ArrayAdapter<String> adapter1 = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, items1);
adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(adapter1);
// 第一个 Spinner 的选择事件
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
// 获取当前选择的一级选项
String item1 = items1[position];
// 根据一级选项获取对应的二级选项数据源
String[] item2 = items2[position];
// 为第二个 Spinner 设置适配器
ArrayAdapter<String> adapter2 = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_spinner_item, item2);
adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner2.setAdapter(adapter2);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// do nothing
}
});
// 第二个 Spinner 的选择事件
spinner2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
// 获取当前选择的二级选项
String item2 = (String) parent.getItemAtPosition(position);
// do something with item2
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// do nothing
}
});
```
阅读全文