Android实现二级联动

Android实现二级联动,二级联动是非常常见实用的功能,用的比较多的就是地址选择了,今天就给大家讲讲如何实现:

 

效果图:

Android实现二级联动_第1张图片Android实现二级联动_第2张图片Android实现二级联动_第3张图片

 

布局文件:

 

 
     


java代码:
 

package com.example.testandroid_0610;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView;
import android.widget.SimpleAdapter;
import android.widget.Spinner;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MainActivity extends AppCompatActivity {

    private Spinner s_main_spinner;
    private Spinner s_main_spinnerTwo;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //获取控件
        s_main_spinner = (Spinner) findViewById(R.id.s_main_spinner);
        s_main_spinnerTwo = (Spinner) findViewById(R.id.s_main_spinnerTwo);

        //设置省份
        final String provinces[]={"湖南省","河南省","海南省"};
        //给省份设置图标
        int images[]={R.mipmap.bird,R.mipmap.cat,R.mipmap.chicken};
        //添加市
        final Map citys=new HashMap();
        citys.put("湖南省",new String[]{"长沙市","衡阳市","益阳市"});
        citys.put("河南省",new String[]{"郑州市","许昌市","周口市"});
        citys.put("海南省",new String[]{"海口市","三亚市","文昌市"});

        //将图标添加进集合
        List> list=new ArrayList<>();
        for (int i = 0; i < provinces.length; i++) {
            Map map=new HashMap<>();
            map.put("title",provinces[i]);
            map.put("image",images[i]);
            list.add(map);
        }

        //适配器
        SimpleAdapter adapterSpinner=new SimpleAdapter(this,list,android.R.layout.activity_list_item,new String[]{"title","image"},new int[]{android.R.id.text1,android.R.id.icon});
        //上面适配器引用的是系统布局,所以需要按照系统布局的方式来排列
        s_main_spinner.setAdapter(adapterSpinner);

        //给下拉列表设置选择事件
        s_main_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView parent, View view, int position, long id) {
                //先根据下标拿到省份,再根据拿到的省份去集合中拿到市
                String city[]=citys.get(provinces[position]);
                //将拿到的市添加到适配器中
                ArrayAdapter ada=new ArrayAdapter(MainActivity.this,android.R.layout.simple_list_item_1,city);
                s_main_spinnerTwo.setAdapter(ada);
            }

            @Override
            public void onNothingSelected(AdapterView parent) {

            }
        });
    }
}


代码非常简单,希望对大家有帮助。

 

 

 

你可能感兴趣的:(Android)