Spinner 二级联动

Spinner  二级联动

import java.util.List;



public class YingJiShiJianLeiXingBean {
	private String eventtype;

	private List<DescribeBean> list_desBeans;

	public String getEventtype() {
		return eventtype;
	}

	public void setEventtype(String eventtype) {
		this.eventtype = eventtype;
	}

	public List<DescribeBean> getList_desBeans() {
		return list_desBeans;
	}

	public void setList_desBeans(List<DescribeBean> list_desBeans) {
		this.list_desBeans = list_desBeans;
	}
}

实体类2

public class DescribeBean {
private String name;
	
	private String id;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}
}

主要类:

package com.cdc.liandong;

import java.util.ArrayList;
import java.util.List;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import com.androidquery.AQuery;
import com.androidquery.callback.AjaxCallback;
import com.androidquery.callback.AjaxStatus;
import com.cdc.bean.DescribeBean;
import com.cdc.bean.YingJiShiJianLeiXingBean;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;

public class MainActivity extends Activity {
	

	
	/** 应急事件类型大类型 **/
	private List<String> list_yingList = new ArrayList<String>();

	/** 应急事件类型第一个详细类型 (默认的类型) ***/

	private List<String> list_first = new ArrayList<String>();


	/** 应急事件类型二级详细类型--文字 ***/
	private List<List<String>> list_detail = new ArrayList<List<String>>();
	/** 应急事件类型二级详细类型--id ***/
	private List<List<String>> list_detail_ids = new ArrayList<List<String>>();
	/***记录事件类型二级分类中集合的位置--在二级分类的id中调用**/
	private int pos;
	

	

	private String path = "http://192.168.0.115:8080/应急事件类型全数据.txt";
	/*** 事件类型一级分类 **/
	private Spinner sp_shijianleixing_yiji;
	/*** 事件类型二级分类 **/
	private Spinner sp_shijianleixing_erji;
	/***保存应急级别的实体类***/
	private List<YingJiShiJianLeiXingBean> list = new ArrayList<YingJiShiJianLeiXingBean>();
	/***事件类型的一级适配器***/
	private  ArrayAdapter<String> adapter_shijianleixing_yiji;
	/***事件类型的二级适配器***/
	private ArrayAdapter<String> adapte_shijianleixing_erji;

	private AQuery aq;

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	

		aq = new AQuery(this);

		aq.ajax(path, String.class, new AjaxCallback<String>() {
			@Override
			public void callback(String url, String object, AjaxStatus status) {
				// TODO Auto-generated method stub

				// System.out.println(object);
				
				if (object != null
						&& object.startsWith("\ufeff")) {
					object = object.substring(1);
				}

				if (object != null && object.length() > 0) {

					try {
						JSONArray jsonArray = new JSONArray(object);

						for (int i = 0; i < jsonArray.length(); i++) {

							JSONObject jsonObject = jsonArray.getJSONObject(i);
							YingJiShiJianLeiXingBean yingJiShiJianLeiXingBean = new YingJiShiJianLeiXingBean();
							String typeString = jsonObject
									.optString("eventtype");

							JSONArray jsonArray2 = jsonObject
									.optJSONArray("describe");

							List<DescribeBean> list_desBeans = new ArrayList<DescribeBean>();
							for (int j = 0; j < jsonArray2.length(); j++) {
								DescribeBean describeBean = new DescribeBean();

								JSONObject jsonObject2 = jsonArray2
										.getJSONObject(j);

								String nameString = jsonObject2
										.optString("name");
								String idString = jsonObject2.optString("id");

								describeBean.setId(idString);

								describeBean.setName(nameString);

								list_desBeans.add(describeBean);
							}

							yingJiShiJianLeiXingBean.setEventtype(typeString);

							yingJiShiJianLeiXingBean
									.setList_desBeans(list_desBeans);

							list.add(yingJiShiJianLeiXingBean);

						}

						

						getData(list);

						adapter_shijianleixing_yiji = new ArrayAdapter<String>(MainActivity.this,
								android.R.layout.simple_spinner_item,
								list_yingList);
						adapter_shijianleixing_yiji.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
						sp_shijianleixing_yiji = (Spinner) findViewById(R.id.shijianleixing_yiji);

						sp_shijianleixing_erji = (Spinner) findViewById(R.id.shijianleixing_erji);
						sp_shijianleixing_yiji.setAdapter(adapter_shijianleixing_yiji);
						adapte_shijianleixing_erji = new ArrayAdapter<String>(MainActivity.this,
								android.R.layout.simple_spinner_item,
								list_first);
						adapte_shijianleixing_erji.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
						
						sp_shijianleixing_erji.setAdapter(adapte_shijianleixing_erji);

						sp_shijianleixing_yiji.setOnItemSelectedListener(new OnItemSelectedListener() {

							@Override
							public void onItemSelected(AdapterView<?> arg0,
									View arg1, int arg2, long arg3) {
								// TODO Auto-generated method stub
								 pos = sp_shijianleixing_yiji.getSelectedItemPosition();
								
								
								 adapte_shijianleixing_erji = new ArrayAdapter<String>(MainActivity.this,
										android.R.layout.simple_spinner_item,list_detail.get(pos));
								
								 adapte_shijianleixing_erji.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
								
								
								System.out.println("pos=="+pos+","+list_detail.get(pos).size());

								sp_shijianleixing_erji.setAdapter(adapte_shijianleixing_erji);

							}

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

							}
						});

						sp_shijianleixing_erji.setOnItemSelectedListener(new OnItemSelectedListener() {

							@Override
							public void onItemSelected(AdapterView<?> arg0,
									View arg1, int arg2, long arg3) {
								// TODO Auto-generated method stub
								
								
								 
								 System.out.println("选择的事件类型是="+sp_shijianleixing_erji.getItemAtPosition(arg2).toString()+",对应的id为:"+list_detail_ids.get(pos).get(arg2));
							}

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

							}
						});

					

					} catch (JSONException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				} else {
					Toast.makeText(getApplicationContext(), "网络错误,请稍后重试!",
							Toast.LENGTH_SHORT).show();
				}

			}
		});

	}

	public void getData(List<YingJiShiJianLeiXingBean> list) {
		
		int a = list.get(0).getList_desBeans().size();

		
		
		for (int i = 0; i < list.size(); i++) {
			YingJiShiJianLeiXingBean yBean = (YingJiShiJianLeiXingBean) list
					.get(i);

			String tString = yBean.getEventtype();



			list_yingList.add(tString);
		

			List<DescribeBean> describeBeans = yBean.getList_desBeans();
			List<String> list_names=new ArrayList<String>();
			
			
			List<String> list_ids=new ArrayList<String>();
			for (int j = 0; j < describeBeans.size(); j++) {
				
				
				list_names.add(describeBeans.get(j).getName());
				
				list_ids.add(describeBeans.get(j).getId());

				
			}
			list_detail.add(list_names);
			
			list_detail_ids.add(list_ids);
			
			

		}

		List<DescribeBean> llBeans = list.get(0).getList_desBeans();

		for (int j = 0; j < llBeans.size(); j++) {
			list_first.add(llBeans.get(j).getName());
		}

	}

}

布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#FFFFFF" >


      

    <TextView
        android:id="@+id/ems_shijianleixing_tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/shijianleixing_yiji"
        android:layout_marginTop="7px"
        android:text="*事件类型:" />

    <Spinner
        android:id="@+id/shijianleixing_yiji"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="7px"
        android:layout_toRightOf="@id/ems_shijianleixing_tv"
        android:drawSelectorOnTop="true" />

    <Spinner
        android:id="@+id/shijianleixing_erji"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/shijianleixing_yiji"
        android:layout_marginTop="7px"
        android:layout_toRightOf="@id/ems_shijianleixing_tv"
        android:drawSelectorOnTop="true" />

</RelativeLayout>

应急事件类型全数据.txt

[{"eventtype":"类1","describe":[{"name":"演练11","id":0}]},
{"eventtype":"类2","describe":[{"name":"演练21","id":1},{"name":"演练22","id":2},{"name":"演练23","id":3},{"name":"演练24","id":4},{"name":"演练25","id":7}]},
{"eventtype":"类3","describe":[{"name":"演练31","id":32}]},
{"eventtype":"类4","describe":[{"name":"演练41","id":33},{"name":"演练42","id":34},
{"name":"演练43","id":35},{"name":"演练44","id":36}]},
{"eventtype":"类5","describe":[{"name":"演练51","id":64}]}
]


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值