欢迎访问移动开发之家(rcyd.net),关注移动开发教程。移动开发之家  移动开发问答|  每日更新
页面位置 : > > > 内容正文

安卓通过spinner实现二级选择地区(根据思路可以写三级)

来源: 开发者 投稿于  被查看 40950 次 评论:248

安卓通过spinner实现二级选择地区(根据思路可以写三级)


思路I :通过二维数据放我们需要的城市地区 ,第一个spinner加载第一级城市,监听第一级城市去控制第二个spinner加载二级城市。

 

代码如下:

MainActivity

 

package com.example.testdiqu;

import java.util.ArrayList;


import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.AdapterView.OnItemSelectedListener;


public class MainActivity extends ActionBarActivity {
	private Spinner parent,chaird;
	private ArrayList list=new ArrayList();//城市
	private ArrayList clist=new ArrayList();//子城市
    private String [][] citys=new String[][]{
    		{济南市,历下区,市中区,槐荫区,天桥区,历城区,长清区,平阴县,济阳县,商河县,章丘市},
    		{青岛市,市南区,市北区,四方区,黄岛区,崂山区,李沧区,城阳区,胶州市,即墨市,平度市,胶南市,莱西市},
    		{淄博市,淄川区,张店区,博山区,临淄区,周村区,桓台县,高青县,沂源县},
    		{枣庄市,薛城区,峄城区,台儿庄区,山亭区,滕州市},
    		{东营市,东营区,河口区,垦利县,利津县,广饶县},
    		{潍坊市,潍城区,寒亭区,坊子区,奎文区,临朐县,昌乐县,青州市,诸城市,寿光市,安丘市,高密市,昌邑市},
    		{烟台市,芝罘区,福山区,牟平区,莱山区,长岛县,龙口市,莱阳市,莱州市,蓬莱市,招远市,栖霞市,海阳市},
    		{威海市,环翠区,文登市,荣成市,乳山市},
    		{济宁市,任城区,微山县,鱼台县,金乡县,嘉祥县,汶上县,泗水县,梁山县,曲阜市,兖州市,邹城市},	
    		{泰安市,泰山区,岱岳区,宁阳县,东平县,新泰市,肥城市},
    		{日照市,东港区,岚山区,五莲县,莒县},
    		{莱芜市,莱城区,钢城区},
    		{临沂市,兰山区,罗庄区,沂南县,郯城县,沂水县,苍山县,费县,平邑县},
    		{德州市,德城区,宁津县,庆云县,临邑县,齐河县,平原县,夏津县,武城县,乐陵市,禹城市,莒南县,蒙阴县,临沭县},
    		{聊城市,东昌府区,阳谷县,莘县,茌平县,东阿县,冠县,高唐县,临清市},
    		{滨州市,滨城区,惠民县,阳信县,无棣县,沾化县,博兴县,邹平县},
    		{菏泽市,牡丹区,曹县,单县,巨野县,定陶县,成武县,郓城县,鄄城县,东明县}	
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        parent=(Spinner)findViewById(R.id.parent);
		chaird=(Spinner)findViewById(R.id.chaird);
		loadData();
    }
    private void loadData() {
		// TODO Auto-generated method stub
		for(int i=0;i adapter=new ArrayAdapter
		(MainActivity.this, android.R.layout.simple_spinner_item, list);
		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		parent.setAdapter(adapter);
		parent.setOnItemSelectedListener(new OnItemSelectedListener() {

			@Override
			public void onItemSelected(AdapterView parent, View view,
					int position, long id) {
				// TODO Auto-generated method stub
				    clist.clear();//清除数据
					for(int j=1;j adapter=new ArrayAdapter
					(MainActivity.this, android.R.layout.simple_spinner_item, clist);
					adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
				chaird.setAdapter(adapter);
			}

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

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

main_activity.xml

 

 



    

    




 

用户评论