android中添加三个spinner,分别是省和市和区,并写入部分全国省份和市和区的信息,给出具体代码和操作步骤
时间: 2023-06-18 13:08:19 浏览: 81
操作步骤:
1. 在布局文件中添加三个Spinner控件,分别用于显示省、市、区的信息。
2. 在Java代码中,初始化三个Spinner,并为每个Spinner设置适配器。
3. 在适配器中,根据用户选择的省、市,动态加载相应的区信息。
具体代码如下:
布局文件:
```xml
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Spinner
android:id="@+id/province_spinner"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:prompt="@string/province_prompt" />
<Spinner
android:id="@+id/city_spinner"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:prompt="@string/city_prompt" />
<Spinner
android:id="@+id/district_spinner"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:prompt="@string/district_prompt" />
</LinearLayout>
```
Java代码:
```java
public class MainActivity extends AppCompatActivity {
private Spinner provinceSpinner;
private Spinner citySpinner;
private Spinner districtSpinner;
private ArrayAdapter<String> provinceAdapter;
private ArrayAdapter<String> cityAdapter;
private ArrayAdapter<String> districtAdapter;
private String[] provinces = {"请选择省份", "北京市", "上海市", "广东省"};
private String[][] cities = {
{"请选择城市"},
{"东城区", "西城区", "朝阳区", "海淀区", "丰台区"},
{"黄浦区", "徐汇区", "长宁区", "静安区", "普陀区"},
{"广州市", "深圳市", "珠海市", "汕头市", "韶关市"}
};
private String[][][] districts = {
{
{"请选择区县"},
},
{
{"请选择区县"},
{"东城区", "西城区", "朝阳区", "海淀区", "丰台区"},
},
{
{"请选择区县"},
{"黄浦区", "徐汇区", "长宁区", "静安区", "普陀区"},
},
{
{"请选择区县"},
{"天河区", "荔湾区", "越秀区", "海珠区", "番禺区"},
{"福田区", "罗湖区", "南山区", "宝安区", "龙岗区"},
{"香洲区", "斗门区", "金湾区"},
{"金平区", "龙湖区", "濠江区", "澄海区", "潮阳区"}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
provinceSpinner = findViewById(R.id.province_spinner);
citySpinner = findViewById(R.id.city_spinner);
districtSpinner = findViewById(R.id.district_spinner);
provinceAdapter = new ArrayAdapter<>(this,
android.R.layout.simple_spinner_item, provinces);
provinceAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
provinceSpinner.setAdapter(provinceAdapter);
cityAdapter = new ArrayAdapter<>(this,
android.R.layout.simple_spinner_item, cities[0]);
cityAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
citySpinner.setAdapter(cityAdapter);
districtAdapter = new ArrayAdapter<>(this,
android.R.layout.simple_spinner_item, districts[0][0]);
districtAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
districtSpinner.setAdapter(districtAdapter);
provinceSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
cityAdapter.clear();
cityAdapter.addAll(cities[position]);
citySpinner.setSelection(0);
districtAdapter.clear();
districtAdapter.addAll(districts[position][0]);
districtSpinner.setSelection(0);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
citySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
int provincePosition = provinceSpinner.getSelectedItemPosition();
districtAdapter.clear();
districtAdapter.addAll(districts[provincePosition][position]);
districtSpinner.setSelection(0);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
}
```
在这个示例中,我们使用了三个Spinner控件分别用于显示省、市、区的信息。我们在Java代码中初始化了这三个Spinner,并为每个Spinner设置适配器。在适配器中,当用户选择省或市时,我们动态加载相应的市或区信息。注意,我们在Spinner的适配器中使用了三个二维数组来存储全国的省、市、区信息。你可以按照这个示例进行修改和扩展,以满足你的具体需求。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)