Achieve three linkage address list of the provincial urban Android

        We introduce an example of how to obtain data provinces, and now we introduce the use of spinner control to achieve the linkage of three provinces in the last article.

The following code is what I achieved in the development of the project.

First, we show the next layout file 3 spinner

<LinearLayout android:layout_height="40dip"
            android:layout_width="fill_parent"
            android:id="@+id/LinearLayoutArea" android:orientation="horizontal">
            <Spinner android:id="@+id/spprovince" android:layout_width="100dip"
                android:layout_height="wrap_content">
            </Spinner>
            <Spinner android:id="@+id/spcity" android:layout_width="100dip"
                android:layout_height="wrap_content">
            </Spinner>
            <Spinner android:id="@+id/sparea" android:layout_width="100dip"
                android:layout_height="wrap_content">
            </Spinner>
        </LinearLayout>

The next event is the assignment of code to bind to these spinner controls:

// 从数据库中读取省市区的数据
    // 初始化省下拉框
    private void InitialProvince() {
        try {
            Map<Integer, List> data = AddressUtil.getProvince(file);
            provinceList = data.get(1);
            provinceData = data.get(0);
            ArrayAdapter provinceAdapter = new ArrayAdapter(mContext,
                    android.R.layout.simple_spinner_item, provinceList);
            provinceAdapter
                    .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // 样式
            spprovince.setAdapter(provinceAdapter);
            spprovince.setOnItemSelectedListener(itemSelectedListener);
        } catch (Exception e) {
            Log.d("WineStock", "InitialProvince:" + e.getMessage());
        }
    }

String selectedProvince = ""; // drop-down box, select the province
    // province drop-down box events
    Private OnItemSelectedListener itemSelectedListener = new new OnItemSelectedListener () {
        @Override
        public void onItemSelected (AdapterView parent, View View, <?>
                Int position, the above mentioned id Long) {
            the try {
                Spinner spProvince = (Spinner) parent;
                selectedProvince = (String) spProvince
                        .getItemAtPosition (position);
                the ArrayAdapter cityAdapter = null;
                the Map <String, Integer> Data = (the Map) provinceData.get (position); // accordance select the corresponding provinces get the above mentioned id
                                                                                // then get city
                int pid = data.get(selectedProvince);// 得到省份的id
                Map<Integer, List> citymap = AddressUtil
                        .getCityByPid(pid, file);
                cityList = citymap.get(1);
                cityData = citymap.get(0);
                cityAdapter = new ArrayAdapter(mContext,
                        android.R.layout.simple_spinner_item, cityList);
                cityAdapter
                        .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                spcity.setAdapter(cityAdapter);
                spcity.setOnItemSelectedListener(citySelectedListener);
            } catch (Exception e) {
                Log.d("WineStock", "Select Province error:" + e.getMessage());
            }
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {
            // TODO Auto-generated method stub
        }
    };

    String selectedCity = "";// 下拉框中选择的市
    // 市下拉框事件
    private OnItemSelectedListener citySelectedListener = new OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view,
                int position, long id) {
            try {
                Spinner spCity = (Spinner) parent;
                = selectedCity (String) spCity.getItemAtPosition (position);
                the ArrayAdapter areaAdapter = null;
                the Map <String, Integer> Data = (the Map) cityData.get (position); // The provinces obtained corresponding to the selected id
                                                                            // then give city
                int pid = data.get (selectedCity); // get id cities
                List <String> listArea = AddressUtil.getAreaByPid (pid, File);
                areaAdapter = new new ArrayAdapter (mContext,
                        android.R.layout.simple_spinner_item, listArea);
                areaAdapter
                        .setDropDownViewResource (android.R.layout.simple_spinner_dropdown_item);
                sparea.setAdapter(areaAdapter);
                sparea.setOnItemSelectedListener(areaSelectedListener);
            } catch (Exception e) {
                Log.d("WineStock", "Select City error:" + e.getMessage());
            }

        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {
            // TODO Auto-generated method stub
        }
    };

    String selectedArea = "";// 下拉框中选择的区
    // 区下拉框事件
    private OnItemSelectedListener areaSelectedListener = new OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view,
                int position, long id) {
            try {
                Spinner spArea = (Spinner) parent;
                selectedArea = (String) spArea.getItemAtPosition(position);
                if (selectedProvince != "" && selectedCity != ""
                        && selectedArea != "") {
                    String strAdd = selectedProvince + selectedCity
                            + selectedArea;
                    etaddress.setText(strAdd);
                }
            } catch (Exception e) {
                Log.d("WineStock", "Select Area error:" + e.getMessage());
            }
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {
            // TODO Auto-generated method stub
        }
    };





Reproduced in: https: //www.cnblogs.com/kevinGao/archive/2012/03/27/2426884.html

Guess you like

Origin blog.csdn.net/weixin_34365635/article/details/93306910