双spinner完成省和市的绑定

本文介绍的是根据省spinner的选择来改变市spinner选项的内容

MainActivity代码

public class MainActivity extends AppCompatActivity {
    private Spinner sp,sp1;
    String[] province={"北京","天津","东京","河北"};
    String[][] city={{"海淀区","朝阳区","房山区","昌平区"},{"宝坻","滨河区","武清"},{"AA","BB","CC"},{"秦皇岛","保定","承德","石家庄"}};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        sp=(Spinner)findViewById(R.id.sp);
        sp1=(Spinner)findViewById(R.id.sp2);
        ArrayAdapter adapter=new ArrayAdapter(this,android.R.layout.simple_list_item_1,province);
        sp.setAdapter(adapter);
        //省的项选择事件
        sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView parent, View view, int position, long id) {
                String[] city1=city[position];
                ArrayAdapter adapter1=new ArrayAdapter(MainActivity.this,android.R.layout.simple_list_item_1,city1);
                sp1.setAdapter(adapter1);
                sp1.setOnItemSelectedListener(new ItemSelect(position));
            }

            @Override
            public void onNothingSelected(AdapterView parent) {

            }
        });

    }

    //市的项选择事件
    class ItemSelect implements AdapterView.OnItemSelectedListener{
        int pro_position;
        public ItemSelect(int pro_position){
            this.pro_position=pro_position;
        }
        @Override
        public void onItemSelected(AdapterView parent, View view, int position, long id) {
            String pro = province[pro_position];
            String city1=city[pro_position][position];
            Toast.makeText(MainActivity.this,"省:"+pro+",市:"+city1,Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onNothingSelected(AdapterView parent) {

        }
    }
}

那么布局就很简单了,仅仅需要两个spinner即可




    
    



你可能感兴趣的:(双spinner完成省和市的绑定)