关于Spinner的二级三级甚至多级联动

这是上个星期自己摸索出来的一个逻辑,可能很复杂,用的也不是很先进的方法打,但是总归是摸索出来了,记录一下免得以后忘了
功能描述:
1、当添加数据的时候,实现spinner地区之间的三级联动。
2、当修改数据的时候,要根据已有的地区将联动显示完整,例如拿到的值为“虎门镇”,那么就要在二级spinner显示东莞市,一级spinner显示广东省
界面代码很简单就三个spinner这里就不放代码了,直接Java代码
private Spinner suoshushequ,erjisq,sjsq;

先定义三个spinner,然后是找id

suoshushequ=(Spinner) findViewById(R.id.rkregister_belonetoshequ);//所属社区
        erjisq=(Spinner) findViewById(R.id.rkregister_sssqerji);//二级地区
        sjsq=(Spinner) findViewById(R.id.rkregister_sssqsanji);//三级地区

然后是添加时候的核心代码

ArrayAdapter<CharSequence>shiadapter3=ArrayAdapter.createFromResource(this,R.array.dongguanshi,android.R.layout.simple_spinner_item);
    shiadapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        suoshushequ.setAdapter(shiadapter3);
        suoshushequ.setOnItemSelectedListener(new OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1,
                    int position, long arg3) {
                Spinner spinner=(Spinner) arg0;
                 String aaa=(String) spinner.getItemAtPosition(position);
                ArrayAdapter<CharSequence> sheadapter3 = ArrayAdapter.createFromResource(CZRKRegisterActivity.this, R.array.gcq, android.R.layout.simple_spinner_item);
                if (aaa.equals("莞城区")) {
                    if (aa.equals("tj")) {
    sheadapter3=ArrayAdapter.createFromResource(CZRKRegisterActivity.this,R.array.gcq,android.R.layout.simple_spinner_item);                        sheadapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);}else if (aa.equals("xg")) {             sheadapter3=CZRKRegisterActivity.this.sheadapter3;                  sheadapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);}
erjisq.setAdapter(sheadapter3);
erjisq.setVisibility(View.VISIBLE);                 erjisq.setOnItemSelectedListener(new OnItemSelectedListener() {
   
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,int arg2, long arg3) {
Spinner spinner=(Spinner) arg0;
final String bb(String)spinner.getItemAtPosition(arg2);
diqu=bb
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值